如果我跑:
exec('myString') at [myserver]
我的选择正常
如果我这样做:
declare @mystring nvarchar(max) = 'myString'
exec(@mystring) at [myserver]
(Righe interessate:2) 用于链接服务器“myserver”的OLE DB提供程序“IBMDASQL”返回消息“SQL0104:令牌”非验证。令牌验证:(CL END GET SET CALL DROP FREE HOLD LOCK OPEN WITH ALTER BEGIN。 Causa。 。 。 :Èstato rilevato un errore di sintassi sul token''。 Il令牌''非èvalido。 Un elenco parziale dei tokenvalidiè(CL END GET SET CALL DALL FREE HOLD LOCK OPEN WITH ALTER BEGIN.Questo elenco presuppone che l'istruzione sia corretta fino altoken.Èiposibileche l'errore sia precedente nell'istruzione ,, ma la更多信息:关键词:Effettuare almeno una delle seguenti operazioni e ripetere: - Verificare l'istruzione SQL nell'area del token''。Correggere l'istruzione.L'errore potrebbe essere una virgola o apici mancanti,una parola scritta in modo scorretto oppure potrebbe essere relativo all'ordine delle clausole。 - Se il token dierroreè,correggere l'istruzioneSQLperchénontermina con una clausola valida。“。
(Righe interessate:0) Messaggio 7215,livello 17,stato 1,riga 308 无法在远程服务器'myserver'上执行语句。
这是SQL0104的英文版
消息ID。 。 。 。 。 。 。 。 。 :SQL0104
消息文件。 。 。 。 。 。 。 。 :QSQLMSG
图书馆 。 。 。 。 。 。 。 。 。 :QSYS消息。 。 。 。 :Token& 1无效。有效令牌:(CL END GET SET CALL DROP FREE HOLD LOCK OPEN WITH ALTER BEGIN。
原因。 。 。 。 。 :在令牌''处检测到语法错误。令牌''不是 有效的令牌。有效令牌的部分列表是(CL END GET SET CALL DROP FREE HOLD LOCK OPEN WITH ALTER BEGIN。此列表假定语句是正确的,直到令牌。错误可能更早 声明,但声明的语法似乎有效至
这一点 恢复。 。 。 :执行以下一项或多项操作并再次尝试请求:
- 验证令牌区域中的SQL语句。纠正中 声明。错误可能是缺少逗号或引号,它可能是 是一个拼写错误的单词,或者它可能与条款的顺序有关 - 如果错误标记是,则更正SQL语句
因为它不以有效的条款结束。