SQL Server在启动时运行SP - 哪里有魔力?

时间:2012-05-02 14:35:30

标签: sql

我们有几个 SQL Server 2008 R2 环境(dev,QA,Production),其中包含 ASP.NET 应用程序的数据库。

此应用程序使用 ASP.NET成员资格 SQL Server会话提供程序,因此我们有 ASPState数据库

这些提供程序的功能已扩展为每次登录限制一个活动会话。我们的实现将表添加到 TempDB ,存储proc ASPState.dbo.CreateTempTables以创建这些表,另一个存储proc Master.dbo.ASPState_Startup,在 ASPState中调用 SP

在我的开发机器和生产环境中,当启动 SQL Server 时,将执行Master.dbo.ASPState_Startup并创建表。

我正在设置一个新的 QA环境,但无法弄清楚是怎么回事(因此在 QA 中,表格未添加到 TempDB 启动)。我手动比较了架构和权限,并通过 Red Gate的比较工具进行了比较,发现没有差异。

我检查了这些作业,没有人调用这些存储过程中的任何一个。

关于魔法隐藏在哪里的任何想法?

谢谢, 斯科特

1 个答案:

答案 0 :(得分:1)

sp_procoption是“神奇”:

  

设置或清除存储过程以自动执行。每次启动SQL Server实例时,都会运行设置为自动执行的存储过程。

EXEC sp_procoption @ProcName = 'ASPState_Startup' 
, @OptionName = 'startup' 
, @OptionValue = 'on';