【发布时间】:2013-03-28 20:39:23
【问题描述】:
我在针对 SQL Server 2012 数据库运行的 Visual Studio 2012 中使用 SSIS。使用 OLE DB Source 时出现如下所示的错误。此 OLE DB 源正在执行类似于下面进一步显示的 SQL。当我删除最后的 GO 语句时,SSIS 包执行正常。
在 SQL Server Management Studio 中,无论 GO 语句是否存在,SQL 都可以正常执行。
OLE DB 源正在数据流任务中执行。
为什么这个 GO 在 SSIS 包中执行时会导致这个错误,应该怎么做?非常感谢。
错误:
[来自 SQL 变量 [33] 的 OLE DB 源] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码: 0x80040E14。 OLE DB 记录可用。资料来源:“微软 SQL 服务器本机客户端 11.0" Hresult:0x80040E14 说明: “无法准备声明。”。 OLE DB 记录可用。 来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80040E14 描述:“'GO' 附近的语法不正确。”。
SQL:
/* Test statement */
SELECT 'test' as N'test'
GO
【问题讨论】:
-
GO不是有效的 TSQL 关键字。它仅被 SSMS 等客户端工具用作批处理分隔符。他们不会将GO发送到 SQL Server 本身。
标签: ssis sql-server-2012 ole