2011-09-27 35 views
0

我需要從特定架構下的SQL Server 08數據庫中提取所有表,存儲特效和函數。我可能篩選Management Studio中顯示的項目,然後爲他們每個人做Script As -> Drop/Create,但我真的很想避免這種情況,因爲模式中有很多項目。如何從特定模式中提取sprocs/tables/functions?

有沒有辦法做到這一點?

編輯:

我在this question一看(可能重複我剛發現)。我建議不要使用外部工具,因爲這是在工作,我需要獲得批准才能使用它。我也不想要一個大的Create Database腳本 - 我需要爲每個表格/ sproc /函數單獨的​​腳本。

回答

2
select 
    object_name(obj.object_id), 
    sch.name, 
    co.definition 
from 
    sys.objects obj 
    join sys.schemas sch on sch.schema_id = obj.schema_id 
    left join sys.sql_modules co on co.object_id = obj.object_id 
where 
    sch.name = 'DBO' --here goes your schema name 

--The syscoments表使用早在SQL 2000,你不應該再使用它 - 但是當所以它是sys.syscomments表

+0

這作品,謝謝。儘管獲得一個奇怪的行爲 - 它適用於每個模式_except_我正在尋找。任何配置或任何東西可以阻止架構出現在這個查詢/ sys.objects中?我確定這些對象肯定是在正確的模式中,所以它不是空的。 – Alex

1

Visual Studio 2010 Premium包含數據庫項目工具支持,該支持允許您在數據庫之間執行數據庫模式比較(您只能過濾到指定的數據庫模式),並將實時數據庫中的所有對象(和配置)提取到VS2010數據庫項目,爲每個對象創建一個腳本。

請參閱Working with Database Projects

-1

東西基於

SELECT [text] FROM [syscomments]