2010-11-02 69 views
2

在SQL Server 2005/2008,任何人都可以请告诉我如何,我可以自动生成,让说,开始于“Client_”在SQL Server给对象名称自动生成脚本

我已经是所有对象的脚本有一个查询标识所有从“client_”开始的对象,但我也想自动生成脚本。手动完成是一项艰巨的任务。

select name,type_desc 
from sys.objects 
where object_definition(object_id) like '%client_%' 

请告知

海量感谢 阿米特

+0

如果您发布的代码或XML,** **请在高亮文本编辑器的线路,然后点击编辑器工具栏上的“代码”按钮(101 010)很好地格式和语法高亮显示! – 2010-11-02 06:01:43

回答

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

我觉得没有工具,将解决你的目的。否则使用全部生成脚本并删除不需要的额外脚本。

+0

嗯,我有成千上万的脚本。反正谢谢你看我的问题 – Amit 2010-11-02 06:22:18

+0

这没关系,这只是我的看法而已。 – KuldipMCA 2010-11-02 06:29:46

相关问题