2013-05-28 43 views

回答

2

你可以使用DBvisualizer ..它几乎适用于所有的数据库和ms sql,你可以使用它来完成你提到的所有事情。

+0

thx咨询。我终于找到了这个工具http://www.red-gate.com/products/sql-development/sql-search/ – Mandragorasprout

2

SQL Server可能不会让你直接更新对象定义(视图和你的情况存储Proceduress)存在于系统目录连“允许更新”选项设置为1

将下面的代码后生成所需的ALTER脚本,并且可以在查看定义([ModifiedDefinition])之后手动运行它们,或者您可以遍历[ModifiedDefinition]的每个值并使用sp_executesql运行它。

SELECT 
    b.Name                  AS [ObjectName], 
    CASE WHEN b.type ='p' THEN 'Stored Procedure' 
     WHEN b.type ='v' THEN 'View' 
     ELSE b.TYPE 
    END                   AS [ObjectType] 
    ,a.definition                AS [Definition] 
    ,Replace ((REPLACE(definition,'OLD Value','New Value')),'Create','ALTER') AS [ModifiedDefinition] 
FROM sys.sql_modules a 
JOIN 
( select type, name,object_id 
    from sys.objects 
    where type in (
      'p' -- procedures 
      ,'v'--views 
        ) 
    and is_ms_shipped = 0 
)b 
ON a.object_id=b.object_id 

与往常一样,在生产数据时要小心并在对对象定义执行批量更改之前进行备份!