2009-11-08 46 views
1

我想知道management studio在每次更改表時都會生成更改表腳本,尤其是當我將數據類型從「文本」更改爲「varchar(max)」時。是否有一個特殊的SQL服務器2008年獲得表更改腳本?

和平, 冰

更新:關於已經給了答案,我想精確我的問題後,說謝謝你的帖子。 現在,就像已經說過的那樣,ssms根據需要生成腳本,但是我想編寫一個腳本來識別給定數據庫中具有數據類型[text]的所有表並將它們更改爲[varchar(max)]。所以最簡單的部分是掃描字典以查找表和列,更難的部分是生成所提到的腳本,將所有行復制到新的結構中。 - >是的,我可以手動通過表列表並單擊ssms來獲取腳本,但有近200個表...更好的計算機做這個工作,不是嗎?

+0

你只是想做「ALTER TABLE」命令來更改該字段上的數據類型?如果是這樣,那麼根本不需要編寫整個表的腳本 - 只需從SYSCOLUMNS和SYSOBJECTS中選擇即可創建ALTER TABLE語句。我可以做一個例子,如果你想要一個。 – SqlRyan 2009-11-17 05:13:38

回答

0

如果你問的是「給定一個表,是否有一種簡單的方法來獲得用於創建該表的DML?」那麼我不相信你可以運行一個系統SP並獲得它。你需要寫一些從系統表中選擇的東西來獲取列和數據類型,索引等等。

我希望有一種簡單的方法可以生成SSMS所做的相同腳本(如右鍵單擊 - >「修改」存儲過程),但似乎並不那麼容易。

0

當您使用Management Studio表格設計器更改表格時,該腳本已在後臺準備好,您只需單擊「生成更改腳本」圖標即可查看該表格(如果需要,可將其複製)。

在SQL 2008中,「生成更改腳本」選項位於「表設計器」菜單中。

如果你問的是什麼,它很簡單:SQL將用新結構創建一個新表,複製舊錶中的所有數據,刪除舊錶並重命名新表。如果你按照上面的描述打開腳本,你會看到。

相關問題