データベースに同じ列を持つ 20 個のテーブルがあります。
全テーブルのジャンル(テーブル内の列)のデフォルト値を変更したいです。
それはSQL文で可能ですか?
簡単な調査で私はこれを手に入れました:
ALTER TABLE table_name
ALTER COLUMN column_name datatype SET DEFAULT default_value
私はSQLの専門家ではありませんが、これでうまくいくようです。ソース:http ://www.w3schools.com/sql/sql_default.asp 。とにかくSQLの質問のための良いリソース。
ファウストの答えを少し拡張すると、これは SP_MSFOREACHTABLE (文書化されていない手順) を使用して実行でき、すべてのテーブルに書き込む必要がなくなります。
EXECUTE SP_MSFOREACHTABLE
@Command1 = 'ALTER TABLE ? ADD CONSTRAINT DF_Genre DEFAULT (''Default'') FOR Genre ',
@WhereAnd = 'AND o.Name IN (SELECT Table_Name FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = ''Genre'')'
ALTER TABLE dbo.Tbl_1
DROP CONSTRAINT DF_genre
ALTER TABLE dbo.Tbl_1 ADD CONSTRAINT
DF_genre DEFAULT ('new value') FOR genre
「DF_genre」を、各テーブルで名前が付けられている制約に置き換えます。