2013-05-28 69 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 

與往常一樣,在生產數據時要小心並在對對象定義執行批量更改之前進行備份!