通过在sql server中提供对象名来自动生成脚本

时间:2010-11-02 05:34:12

标签: sql sql-server

在sql server 2005/2008中,任何人都可以告诉我如何自动生成所有对象的脚本,这些对象以“Client _”开头

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

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

请告知

非常感谢 阿米特

2 个答案:

答案 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并删除你不需要的额外脚本。

相关问题