在SSIS C#脚本中的位置[关闭]

问题描述 投票:0回答:1

我在SSIS脚本中有下面的查询。

string query = "Select distinct " + ColumnNameForGrouping + " from " + TableName + "where flag like '%investigation%'" ;

它给出了以下错误消息。

System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near the keyword 'like'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader()
   at ST_6e1c49bc23064a7f8c0538ec0e69dd09.ScriptMain.Main()
ClientConnectionId:b5c340bb-5ec2-48cb-9d2a-fd5d1ead30bd
Error Number:156,State:1,Class:15

我猜它不喜欢单引号或百分号。你如何使用C#在SSIS脚本中编写WHERE - LIKE?

有关信息,在我只使用下面的查询而没有Where - LIKE子句之前,它工作正常。

string query = "Select distinct " + ColumnNameForGrouping + " from " + TableName

我正在使用Microsoft Server 2012。

谢谢大家的帮助。

c# sql-server ssis where-clause
1个回答
0
投票

韩的答案:

在那里放一个空格。它应该是+“其中标志像'%investigation%'”;如果名称包含空格或保留字,您也可以尝试在列名和表名之前添加括号。 - 汉族43分钟前

© www.soinside.com 2019 - 2024. All rights reserved.