2

データベースに同じ列を持つ 20 個のテーブルがあります。

全テーブルのジャンル(テーブル内の列)のデフォルト値を変更したいです。

それはSQL文で可能ですか?

4

3 に答える 3

2

簡単な調査で私はこれを手に入れました:

ALTER TABLE table_name
ALTER COLUMN column_name datatype SET DEFAULT default_value

私はSQLの専門家ではありませんが、これでうまくいくようです。ソース:http ://www.w3schools.com/sql/sql_default.asp 。とにかくSQLの質問のための良いリソース。

于 2012-04-23T13:59:35.647 に答える
2

ファウストの答えを少し拡張すると、これは 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'')'
于 2012-04-23T14:56:33.940 に答える
1
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」を、各テーブルで名前が付けられている制約に置き換えます。

于 2012-04-23T14:02:45.747 に答える