我的数据库中有 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”替换为每个表上命名的任何约束。