易截截图软件、单文件、免安装、纯绿色、仅160KB

在SQL Server启动时自动执行存储过程

问题
  当sql server启动时,我很想运行一个存储过程。有没有一种方法可以在每次SQL Server服务启动时都会自动执行这个存储过程呢?
  专家解答
  sql Server提供了系统存储过程sp_procoption,这个存储过程可以用于当SQL Server服务启动时指派一个或者多个存储过程自动执行。这是一个很不错的选择,它可以用于多种多样的用途。比如,你可能在你的数据库中有开销很大的查询,这个查询在首次执行时会花费一些时间。通过使用sp_procoption,你可以在服务器启动时运行这个查询以此来预先编译执行计划,由此,你的某个用户就不会成为第一个运行这个特殊查询的不幸的人。我曾经用这个功能建立了一个我自己写的概要分析器服务器端跟踪的自动执行功能,这个跟踪功能成为服务器启动时被设置成自动执行的存储过程的一部分。
  sp_procoption Parameters
  exec sp_procoption @ProcName = ['stored procedure name'],
  @OptionName = 'STARTUP',
  @OptionValue = [on|off]
  以下是sp_procoption存储过程参数的解释:
  l 参数@ProcName的意思是明显的,它是被标记成自动执行的过程的名称。
  l 参数@OptionName是可选用项,唯一有效的选项是STARTUP。
  l 参数@OptionValue切换自动执行的开与关。
  使用有特定限制的sp_procoption:
  l 你必须以系统管理员的身份登录服务器并使用sp_procoption。
  l 你只能指派标准存储过程、扩展存储过程或者CLR存储过程来启动。
  l 存储过程必须在主从数据库上。
  l 存储过程不能要求任何输入参数或者返回任何输出参数。
  在下面的例子中,我创建一个存储过程,每次启动我的SQL Server实例时,这个存储过程就自动执行。这个存储过程的目的是在记录服务启动时间的数据库表中写一行。通过这张数据库表,我产生一个获得服务器正常运行时间的想法。以下的脚本创建了一个新的数据库,这个数据库存储了一张叫做SERVER_STARTUP_LOG的公制表。这张表保留了上次服务器启动的日期和时间。一旦建立了这个基本的架构,我就创建存储过程,在服务器启动时,这个存储过程将用于把日期和时间插入到表中。注意,存储过程是在主从数据库上创建的。
  USE MASTER
  GO
  CREATE DATABASE SERVER_METRICS
  GO
  USE SERVER_METRICS
  GO
  CREATE table DBO.SERVER_STARTUP_LOG
  (
  LOGID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
  


相关文档:

[收拢] 用sqlite 执行标准 sql 语法

http://www.umgr.com/blog/PostView.aspx?bpId=36294
 1. 执行sql语句
int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callbacksql 语法
, void *,  char **errmsg );
这就是执行一条 sql 语句的函数。
第1个参数不再说了,是前面open函数得到的指针。说了是关键数据结构。
第2个参数const char ......

SQL SERVER 2005 数据库状态为“可疑”的解决方法

--MyDB为修复的数据名
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE MyDB SET EMERGENCY
GO
sp_dboption 'MyDB', 'single user', 'true'
GO
DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE MyDB SET ONLINE
GO
sp_configure 'allow updates ......

SQL Table

Table-Naming Standards
Table-naming standards, as well as any standard within a business, are critical to
maintaining control. After studying the tables and data in the previous sections, you
probably noticed that each table’s suffix is _TBL. This is a naming standard selected
for use, suc ......

大数据量下快速获取 SQL Server 数据库表记录数的方法

在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select count(*) as c from tableA 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号