我有一个现有列 (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/