SSIS:“GO'附近的语法不正确。”错误

时间:2013-03-28 20:39:23

标签: ssis sql-server-2012 ole

我在针对SQL Server 2012数据库运行的Visual Studio 2012中使用SSIS。使用OLE DB Source时,我收到如下所示的错误。此OLE DB源正在执行类似于下面进一步显示的SQL。当我在结尾删除GO语句时,SSIS包执行正常。

在SQL Server Management Studio中,无论GO语句是否存在,SQL都会执行ok。

OLE DB源正在数据流任务中执行。

为什么这个GO在SSIS包中执行时会导致这个错误,应该怎么做呢?非常感谢。

错误:

  

[来自SQL变量的OLE DB源[33]]错误:SSIS错误代码   DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:   0x80040E14。 OLE DB记录可用。资料来源:“Microsoft SQL   Server Native Client 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

4 个答案:

答案 0 :(得分:11)

GO是批处理终结符,并且在OLE DB源中使用它,如错误消息所示,是不正确的。

答案 1 :(得分:2)

你的SQL是:

SELECT 'test' as N'test'
GO

GO是命令行的事情 - 在使用OLE将SQL传递到服务器时将其删除 试试吧:

SELECT 'test' as N'test'

答案 2 :(得分:0)

您应该从脚本中删除所有“GO”,它将解决问题。

查看此信息以获取更多信息:

https://agilewebhosting.com/knowledgebase/63/SQL-Error-Incorrect-syntax-near-andsharp039GOandsharp039.html

矩阵

答案 3 :(得分:-2)

建议的最佳实践:使用分号作为t-SQL语句终止符。虽然此版本的SQL Server中的大多数语句不需要分号,但在将来的版本中将需要使用分号。

http://msdn.microsoft.com/en-us/library/ms177563.aspx