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 回答