sql - 更改 SQL Server 2012 中现有列的列默认值

标签 sql sql-server

我有一个现有列 (ROLE),其默认值需要从 'zzzz' 更新为 'S'。 p>

我试过使用下面的查询,这显然不起作用:

ALTER TABLE [TRANSACTIONS] ALTER COLUMN [ROLE] ADD DEFAULT('S') ;

有人可以帮助理解是否有可能更新列默认值,如果可以,那么如何?

谢谢

最佳答案

您需要删除并重新添加默认约束以指定不同的值。

ALTER TABLE dbo.TRANSACTIONS DROP CONSTRAINT DF_TRANSACTIONS_ROLE;
ALTER TABLE dbo.TRANSACTIONS ADD CONSTRAINT DF_TRANSACTIONS_ROLE DEFAULT ('S') FOR [ROLE];

但是,由于您没有明确命名约束(这是最佳做法),您需要确定 DROP 语句的现有约束名称:

SELECT name
FROM sys.default_constraints AS dc
WHERE
    dc.parent_object_id = OBJECT_ID(N'dbo.TRANSACTIONS')
    AND dc.parent_column_id = COLUMNPROPERTYEX(dc.parent_object_id, 'ROLE', 'ColumnID');

关于sql - 更改 SQL Server 2012 中现有列的列默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50192635/

相关文章:

mysql - mysql如何更新多条记录

sql - 应用掩码以格式化 SQL Server 查询/ View 中的字符串

sql-server - 如何更新主键

c# - 如何从数据集中检索特定列?

SQL SERVER 2005 中的 SQL 查询 - 比较日期

mysql - 使用 UNION 选择但限制每个子查询并接收不同的值

mysql - sql 查询 - WHERE 子句中的 IF EXIST

c# - 如何跟踪表行之间的 ID/ParentID 关系?

sql-server - SQL Server 2008 R2 中的 NULL 相等性

java - 如何使用java在mssql中插入列