Alter Table 的疑问!

zhangqiang0921 2011-11-23 11:25:48
IF  NOT exists(select * from syscolumns  where name='CanExportData' and id=object_id('User')) 
BEGIN
Alter Table [User] Add [CanExportData] [Bit] Default 0 NULL;
UPDATE [User] SET [CanExportData] = 0;
UPDATE [User] SET [CanExportData] = 1 WHERE [Purview] = 2
END


提示:
消息 207,级别 16,状态 1,第 5 行
列名 'CanExportData' 无效。

为什么?我不是已经创建了[CanExportData]列了,怎么还提示我列名 'CanExportData' 无效?
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sql_sf 的回复:]
引用 4 楼 fredrickhu 的回复:
SQL code

IF NOT exists(select * from syscolumns where name='CanExportData' and id=object_id('User'))

Alter Table [User] Add [CanExportData] [Bit] Default 0 NULL
go

UP……
[/Quote]
sql_sf 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fredrickhu 的回复:]
SQL code

IF NOT exists(select * from syscolumns where name='CanExportData' and id=object_id('User'))

Alter Table [User] Add [CanExportData] [Bit] Default 0 NULL
go

UPDATE [User] SE……
[/Quote]
语义直接让你改变了
--小F-- 2011-11-24
  • 打赏
  • 举报
回复
IF  NOT exists(select * from syscolumns  where name='CanExportData' and id=object_id('User')) 

Alter Table [User] Add [CanExportData] [Bit] Default 0 NULL
go

UPDATE [User] SET [CanExportData] = 0
go
UPDATE [User] SET [CanExportData] = 1 WHERE [Purview] = 2
go
中国风 2011-11-23
  • 打赏
  • 举报
回复
这是在同一批次不可以同时存在新增列,再对列操作,可以加go分隔或动态
中国风 2011-11-23
  • 打赏
  • 举报
回复
需要用动态,SQL检查脚本时通不过
中国风 2011-11-23
  • 打赏
  • 举报
回复
IF  NOT exists(select * from syscolumns  where name='CanExportData' and id=object_id('User')) 
BEGIN
Alter Table [User] Add [CanExportData] [Bit] Default 0 NULL;
exec('UPDATE [User] SET [CanExportData] = 0;
UPDATE [User] SET [CanExportData] = 1 WHERE [Purview] = 2')
END

27,579

社区成员

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

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