标题:如果表不存在某列,则新加列,设置默认值为另两列的差
取消只看楼主
WhoKnows
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-9-11
 问题点数:0 回复次数:1 
如果表不存在某列,则新加列,设置默认值为另两列的差
各位大神,我想给一张表新加一个列。

如果该列不存在,则创建列,并且更新该列的值为另两列的差,下面是我写的,但是当我更新时,提醒我该列不存在,因为在IF里,又不能用GO,该怎么处理呢?

IF(NOT EXISTS (SELECT * FROM sys.columns WHERE NAME = 'NEW_COLUMN_NAME' AND OBJECT_ID('EXISTED_TABLE_NAME') = object_id))
BEGIN
ALTER TABLE EXISTED_TABLE_NAME
ADD NEW_COLUMN_NAME money
CONSTRAINT ONE_CONSTRAINT default 0.00 with values

UPDATE EXISTED_TABLE_NAME SET NEW_COLUMN_NAME=EXISTED_TABLE_NAME.COLUMN1-EXISTED_TABLE_NAME.COLUMN2
END

GO

跪求大神解答...感激不尽。。
小弟新来乍到,也没有分数赠送...
2015-09-11 17:57
WhoKnows
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-9-11
得分:0 
回复 2楼 kinvanhon
不是,它提示的是 找不到有这个column,我想应该是说 我新建column还没有应用到数据库的表上去,所以找不到,必须要先执行IF中的第一句话,才能执行第二句话
2015-09-14 09:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-457237-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.390233 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved