SQLServer表字段默认值相关信息的获取方法

获取指定表的所有约束:

SELECT  OBJECT_NAME(so.id) AS tableName ,
        OBJECT_NAME(sc.constid)
FROM    sysconstraints SC
        INNER JOIN sysobjects SO ON sc.id = so.id
WHERE   OBJECT_NAME(so.id) = 'TableName'

获取指定表指定列的默认值:

SELECT  SCOM.text AS value
FROM    syscolumns SCOL
        LEFT JOIN syscomments SCOM ON SCOL.cdefault = SCOM.id
WHERE   SCOL.id = OBJECT_ID('TableName')
        AND SCOL.name = 'ColumnName'

获取更新指定表指定列默认值的脚本:

DECLARE @deleteSql VARCHAR(800)
DECLARE @insertSql VARCHAR(800)
SELECT  @deleteSql = 'ALTER TABLE [dbo].[KY_system_information] DROP CONSTRAINT ' + [name] ,
        @insertSql = 'ALTER TABLE [dbo].[KY_system_information] ADD CONSTRAINT DF__KY_system__payByYearAvg DEFAULT 0 FOR payByYearAvg'
FROM    sysobjects SO
WHERE   id = ( SELECT   cdefault
               FROM     syscolumns
               WHERE    id = OBJECT_ID('TableName')
                        AND name = 'ColumnName'
             ) 
PRINT @deleteSql
PRINT @insertSql

 

 

转载于:https://www.cnblogs.com/royliugc/archive/2013/02/05/2892823.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值