【发布时间】:2019-01-10 16:08:01
【问题描述】:
我很难在以下 SQL 语句中整理出我应该拥有的 ' 的数量:
declare @sql varchar(max)
declare @LetterID varchar(max) = 'c01as1'
set @sql =
'SELECT fltr.tency_seq_no FROM OPENQUERY(loopback,
''SET FMTONLY OFF; EXEC BST.[LET].[LETTERBUILD] @LetterCode =
''''\\SVR-QL4APPLIVE\QLSHAREPOINT\LETTERS\DATAFILES\
'''+@LetterID+'''
.csv''''
WITH RESULT SETS (tency_seq_no VARCHAR(255))''
) AS fltr'
exec (@sql)
当前错误:
消息 102,第 15 级,状态 1,第 3 行
'c01as1' 附近的语法不正确
澄清一下,错误是指动态 SQL 中的 @LetterID 变量,而不是在声明参数时
@SQL 的打印
SELECT fltr.tency_seq_no
FROM OPENQUERY(loopback, 'SET FMTONLY OFF; EXEC BST.[LET].[LETTERBUILD] @LetterCode = ''\\SVR-QL4APPLIVE\QLSHAREPOINT\LETTERS\DATAFILES\'c01as1'.csv''
WITH RESULT SETS (tency_seq_no VARCHAR(255));'
) AS fltr
任何帮助将不胜感激!
【问题讨论】:
-
无论何时使用动态 sql,您都需要在执行之前打印/选择您的查询。它将很快突出问题所在。
-
@WayneDonaldson 如果您有澄清,请编辑您的问题,而不是模糊 cmets 中的信息。您可以随时修改您的问题。 “编辑”按钮位于左侧,与包含您的用户名的蓝色框平行。
-
谢谢@ADyson - 修改
-
嗨@SeanLange,谢谢你的建议,我已经做了一个打印sql,我可以看到输出(添加到OP)。但是,这并没有向我强调问题出在哪里...您现在可以建议查看打印的 sql 吗?
-
'''+@LetterID+'''应该是' + @LetterID+'
标签: sql-server tsql dynamic-sql