在sql server 2005/2008中,任何人都可以告诉我如何自动生成所有对象的脚本,这些对象以“Client _”开头
我已经有一个查询标识从“client_”开始的所有对象,但我也想自动生成脚本。手动完成这是一项艰巨的任务。
select name,type_desc
from sys.objects
where object_definition(object_id) like '%client_%'
请告知
非常感谢 阿米特
答案 0 :(得分:2)
我认为你应该在select语句中使用sp_helptext
系统过程。
您还可以使用数据库游标在循环中执行sp_helptext
:
DECLARE @name SYSNAME -- object name
DECLARE @type_desc VARCHAR(MAX) -- path for backup files
DECLARE @sql VARCHAR(MAX)
DECLARE db_cursor CURSOR FOR
select name,type_desc
from sys.objects
where object_definition(object_id) like '%client_%'
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name, @type_desc
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql =
'sp_helptext @objname = ''' + @name + ''''
EXEC (@sql)
FETCH NEXT FROM db_cursor INTO @name, @type_desc
END
CLOSE db_cursor
DEALLOCATE db_cursor
其他解决方案是使用sys.syscomments
系统视图。例如:
SELECT o.name, o.[type], s.[text]
from sys.objects o
INNER JOIN sys.syscomments s ON o.[object_id] = s.id
where object_definition(object_id) like '%client_%'
答案 1 :(得分:-1)
我认为没有工具可以解决你的目的。否则使用generate script for all并删除你不需要的额外脚本。