C# 更改两个表中的列参数

C# 更改两个表中的列参数,c#,.net,sql,C#,.net,Sql,我的数据库中有20个表具有相同的列 我想更改所有表中的流派(表中的列)的默认值 sql语句是可能的?通过快速研究,我得出以下结论: ALTER TABLE table_name ALTER COLUMN column_name datatype SET DEFAULT default_value 虽然我不是SQL专家,但这似乎可以胜任这项工作。 来源:。无论如何,这是一个很好的sql问题资源 ALTER TABLE dbo.Tbl_1 DROP CONSTRAINT DF_genre

我的数据库中有20个表具有相同的列

我想更改所有表中的流派(表中的列)的默认值


sql语句是可能的?

通过快速研究,我得出以下结论:

ALTER TABLE table_name
ALTER COLUMN column_name datatype SET DEFAULT default_value
虽然我不是SQL专家,但这似乎可以胜任这项工作。 来源:。无论如何,这是一个很好的sql问题资源

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”替换为每个表上的约束名称。

仅对Faust的答案稍作扩展,这可以使用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'')'

Thx,anf如果我有另一个参数nef来获得默认值?如果我正确理解您的问题,您需要为每个表或参数运行单独的语句。如果另一个参数还没有默认值,您可以省略第一个DROP CONSTRAINT查询。这些答案非常好,只是一个提示,向您展示了如何获取数据库中的所有表名,如果您希望生成所有ALTER语句,然后手动运行所有20个语句,这可能会很有用。