创建启动SO随时sql运行,检索数据库

时间:2013-12-25 14:09:33

标签: sql sql-server sql-server-2012

我希望在任何时候sql运行时创建启动存储过程 检索数据库。这是我的代码,我哪里错了?请帮帮我。

USE MASTER
GO
CREATE PROC SP_RetrievalDataBase
AS
BEGIN
EXEC sp_detach_db 'AdventureWorks2012'
CREATE DATABASE MyAdventureWorks
ON
(FILENAME = 'G:\SQL Server 2012\AdventureWorks2012_Database\AdventureWorks2012_Data.mdf'),
(FILENAME = 'G:\SQL Server 2012\AdventureWorks2012_Database\AdventureWorks2012_Log.ldf')
    FOR ATTACH;
END
GO
EXEC sp_procoption 'SP_ReplaceDataBase', 'startup', '1'

1 个答案:

答案 0 :(得分:2)

尝试将您的上一个参数设置为“开启”,例如

EXECUTE sp_procoption 'SP_ReplaceDataBase', 'startup', 'on';

并在需要自动执行时使用'off',类似这样

EXECUTE sp_procoption 'SP_ReplaceDataBase', 'startup', 'off';

警告
请不要使用sp_前缀作为过程名称,因为Microsoft强烈建议不要为过程名称使用此前缀。微软的原因如下

  

在SQL Server中,sp_前缀指定系统存储过程。如果   您使用该前缀作为您的存储过程,您的名称   过程可能与系统存储过程的名称冲突   这将在未来创建。如果发生这样的冲突,你的   如果您的应用程序引用过程,应用程序可能会中断   没有通过模式限定引用。在这种情况下,   name将绑定到系统过程而不是您的过程。