我正在尝试创建一个包,它将从文件中复制数据并将其放入新表中。到现在为止还挺好。 但是如果包由于某种原因失败,我希望它截断新添加的数据。 所以,我希望它执行这个声明
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确实有一个名为“日期”的专栏...我只是无法弄清楚问题是什么,谷歌一直无法帮助我。
答案 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中的保留字
[日期]