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

SQL: error on invalid column name that does exist

我正在尝试创建一个包,它将从文件中复制数据并将其放入新的 table。到目前为止,一切都很好。 但如果包由于某种原因失败,我希望它截断新添加的数据。 所以,我希望它执行这条语句

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'

但我不断收到此错误: "Error: 0xC002F210 at Delete From MYTABLE, Execute SQL Task: Executing the query "IF EXISTS (SELECT * FROM sys.objects WHERE object_...”失败并出现以下错误:"Invalid column name 'date'."。可能的失败原因:查询问题,"ResultSet" 属性 设置不正确,参数设置不正确,或者连接建立不正确。"

但是 MYTABLE 确实有一个名为 "date" 的列...我就是想不通问题出在哪里,google 也帮不了我。

我认为 "date" 是保留字,请尝试使用 [date]

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 服务器保留字:MSDN

查下括号中的列名,因为日期是 SQL Server

中的保留字

[日期]