2009-07-27 40 views
1

這也可以批量完成嗎?這樣可以將表中的所有列設置爲關閉「NOT NULL」標誌?是否有任何方法來ALTER列以關閉'NOT NULL'?

+0

對於MSSQL數據庫只是澄清;) – Stephen 2009-07-27 11:07:18

+0

哪個版本的SQL Server?將理想的腳本通過他們所有... – AakashM 2009-07-27 11:52:01

+0

我很擔心,爲什麼有人會想這樣做批量。如果不考慮對系統的每個部分的影響,我都不會考慮這種大小的變化,當突然允許之前沒有的空值時,可以分解大量的東西。而且這個領域爲什麼不允許空值通常是有原因的。 – HLGEM 2009-07-27 16:15:21

回答

3

您應該可以使用ALTER TABLE xxx ALTER COLUMN語句重新定義該列。


如果這是你需要運行一個一次性的事情,你可以通過編寫一個從系統/ DBA表查詢的列名的表,並生成您的ALTER語句的查詢使用一個小技巧。您將查詢結果(您的15個或多個alter語句)複製到腳本中,然後運行該腳本。我沒有沿線的多MSSQL經驗,也不是環境,現在來測試,但事情:

SELECT 
    'ALTER TABLE ' + table_name + ' ALTER COLUMN ' + column_name + ' ' + data_type 
FROM INFORMATION_SCHEMA.Columns 
WHERE TABLE_NAME = 'xxx' 

,你將需要操作DATA_TYPE部分添加/刪除NULL約束文本

0

是的,你可以做到。在線閱讀書籍。

不,它不能批量完成,但可以在單個查詢中執行多個語句。

0

獲取具有所需SQL的列和模板的列表,並使用某種工具爲您創建語句。 我之前在Excel中已經完成了這項工作,但是您可以使用自己選擇的語言編寫一個真正的程序。

1

要做到散裝,一次...

使用SSMS設計器來生成腳本。這將重建您的表(創建臨時表,複製數據,刪除舊錶,重命名臨時表)。

否則,它是一個在使用ALTER TABLE時間...

0

當表的數量足夠我使用SSMSE(SQL Server Management Studio中快速)低,通過在每個表中輸入設計模式,檢查在所需列上允許空值

對於大量表格,請嘗試由ChrisCM提供的答案。

相關問題