sql如何判断表字段是否存在默认值,各位大神们!虚心求解,在线等等等!!!

农村的我 2014-12-19 05:05:10
现有旧的数库表及数据,升级表结构时遇到要将之前的数据库表字段加默认值,存储过程里想的是先判断是否有默认值再修改加入,可是这么判断???求大神解答!小弟感激涕零-_-||
...全文
583 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yilanwuyu123 2014-12-22
  • 打赏
  • 举报
回复
mark. 百度就应该可以解决问题。
LongRui888 2014-12-21
  • 打赏
  • 举报
回复
进一步,你的存储过程中可以这样来判断和处理:
if exists(SELECT  1
			FROM    sys.tables t
					INNER JOIN sys.columns c ON t.object_id = c.object_id
					INNER JOIN sys.default_constraints dc ON c.default_object_id = dc.object_id
			WHERE   t.name = '你的表名称'
					AND c.name = '你的列名称')
    存在默认值约束的处理
else
    不存在默认值约束的处理
LongRui888 2014-12-21
  • 打赏
  • 举报
回复
试试这个:
SELECT  t.name ,
        c.name AS column_name ,
        c.default_object_id,
		dc.name as default_constraint_name
FROM    sys.tables t
        INNER JOIN sys.columns c ON t.object_id = c.object_id
        INNER JOIN sys.default_constraints dc ON c.default_object_id = dc.object_id
WHERE   t.name = '你的表名称'
        AND c.name = '你的列名称'
Tiger_Zhao 2014-12-19
  • 打赏
  • 举报
回复
SELECT default_object_id FROM sys.columns
WHERE object_id = OBJECT_ID('表名')
AND nam = '字段名'

default_object_id 不等于 0 的就是有默认值。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧