2013-08-19 42 views
1

我有一個數據庫用於在從第三方導入數據時跨主生產數據庫傳輸數據。將標識列添加到數據庫中的所有表Sql server 2005

我想爲每張表添加Identity列。

我知道下面的SQL會爲單個表執行操作,我怎麼能爲數據庫中的所有表執行操作?

ALTER TABLE dbo.YourTable 
ADD Id INT IDENTITY(1,1) NOT NULL 

非常感謝

回答

2

你必須做一個表在一個時間 - 有沒有「神奇」的方式把它做的所有表一次。

你可以有SQL Server的產生通過檢查sys.tables目錄視圖需要該操作的T-SQL語句 - 假設你要調用標識列Id的所有表:

SELECT 
    t.NAME, 
    'ALTER TABLE [' + SCHEMA_NAME(t.SCHEMA_ID) + '].[' + t.NAME + 
    '] ADD Id INT IDENTITY(1,1) NOT NULL' 
FROM 
    sys.tables t 

,請複製&粘貼這條語句的結果行並對數據庫執行這些行 - 然後就完成了!

+0

感謝您的幫助。工作 – user9969

+0

SP_MSFOREACHTABLE「ALTER TABLE?ADD SQL_ID INT IDENTITY PRIMARY KEY」剛剛找到它。 – user9969

相關問題