判断表字段是否存在default约束

sql语句

IF NOT EXISTS ( SELECT *
FROM dbo.syscolumns
WHERE id = OBJECT_ID('[dbo].[TActScoreReceiveRec]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1
AND name = 'SettleFlag'
AND xtype = '167' )
ALTER TABLE [dbo].[TActScoreReceiveRec] ADD SettleFlag VARCHAR(50) NOT NULL DEFAULT ''
ELSE
IF NOT EXISTS ( SELECT *
FROM dbo.syscolumns
WHERE id = OBJECT_ID('[dbo].[TActScoreReceiveRec]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1
AND name = 'SettleFlag'
AND cdefault > 0 )
ALTER TABLE [dbo].[TActScoreReceiveRec] ADD CONSTRAINT DF_TActScoreReceiveRec_SettleFlag DEFAULT ('') FOR SettleFlag
GO

参考文章:https://msdn.microsoft.com/zh-cn/library/ms186816.aspx

即通过cdefault这个字段判断,如果其值大于0,则表示存在约束,否则,不存在约束





原文地址:https://www.cnblogs.com/xiatianoo/p/5623924.html