SQL:确实存在的无效列名称出错

时间:2015-11-10 22:50:24

标签: sql sql-server bids

我正在尝试创建一个包,它将从文件中复制数据并将其放入新表中。到现在为止还挺好。 但是如果包由于某种原因失败,我希望它截断新添加的数据。 所以,我希望它执行这个声明

  

IF EXISTS(SELECT * FROM sys.objects WHERE object_id =   OBJECT_ID(N'TABLE_NAME')并输入(N'U'))DELETE FROM TABLE_NAME   WHERE date ='2015-11-10'

但我一直收到这个错误: “错误:0xC002F210从MYTABLE删除,执行SQL任务:执行查询”如果EXISTS(SELECT * FROM sys.objects WHERE object _...“失败,并出现以下错误:”列名'日期'无效。“。可能失败原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确建立。“

但MYTABLE确实有一个名为“日期”的专栏...我只是无法弄清楚问题是什么,谷歌一直无法帮助我。

2 个答案:

答案 0 :(得分:0)

我相信“日期”是一个保留字,请尝试使用[日期]

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'TABLE_NAME') AND [type] in (N'U')) DELETE FROM TABLE_NAME WHERE [date]='2015-11-10'

SQL Server保留字:MSDN

答案 1 :(得分:0)

将列名称放在括号中,因为日期是SQL Server中的保留字

[日期]