我有一个中央管理数据库,当新数据库恢复到环境中时,它会整理一些信息并为各种其他任务运行一些动态 SQL。其中一项任务通过动态 SQL 实现会有点复杂,因此我想到在中央数据库中创建一个主副本存储过程,并在恢复后将其复制到新数据库中。
我在这里看到了一些人试图这样做的例子,但我无法得到任何东西来打球。
这是我试图在概念上实现的目标,请注意,我试图以这种方式创建潜在的多个存储过程,以备将来证明。
declare @sql nvarchar(max), @DatabaseName nvarchar(200)
set @DatabaseName = 'TargetDatabase'
set @sql =
(
SELECT definition + char(13) + 'GO'
FROM sys.sql_modules s
INNER JOIN sys.procedures p
ON [s].[object_id] = [p].[object_id] WHERE p.name LIKE '%mastercopy%'
)
exec @sql
谢谢
dynamic
您可以将一个脚本与procedures
您要创建的所有程序一起使用,而不是创建脚本(您可以使用 2 次单击来编写您想要的所有过程的脚本SSMS
),然后在要创建这些的数据库的上下文中手动运行此脚本程序或通过将带有此脚本的文件传递给sqlcmd
with-i
并将正确的数据库名称传递给-d
.
这里使用 sqlcmd Utility你可以看到例子。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句