首页 文章

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

提问于
浏览
2

我在Visual Studio 2012中使用SSIS运行SQL Server 2012数据库 . 使用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 回答

  • -2

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

  • 2

    你的SQL是:

    SELECT 'test' as N'test'
    GO
    

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

    SELECT 'test' as N'test'
    
  • 0

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

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

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

    矩阵

  • 11

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

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

相关问题