[英]Dynamic SQL Execution Issue
I am getting Quotes error while Executing below Quotes.I replaced hard-code value with double quotes我在 Quotes 下面执行时出现 Quotes 错误。我用双引号替换了硬编码值
declare @query nvarchar(MAX)
set @query = 'SELECT PID AS EID,
''637'' + p.SSN + SPACE(9- LEN(RTRIM(LTRIM(ISNULL(p.SSN,'')))))
+ ''98''
+ CONVERT(VARCHAR(6), GETDATE(), 12)
+ SPACE(9)
+ ''A1''
+ @Str1
+ @Str2
+ ISNULL(LEFT(UPPER(@Str1),30),'') + SPACE(30- LEN(RTRIM(LTRIM(ISNULL(LEFT(@Str1,30),'''')))))
+ ISNULL(LEFT(UPPER(@Str2),30),'') + SPACE(30- LEN(RTRIM(LTRIM(ISNULL(LEFT(@Str2,30),'''')))))
+ SPACE(1)
+ SPACE(8) AS Data, GETDATE() AS CreatedOn
INTO #Temp
FROM dbo.PERSON p'
exec sp_executesql @query;
INSERT INTO dbo.RKS_TransactionData
SELECT * FROM #Temp
The problem with isnull()
you need ''''
in isnull()
(already you have done but partially) : isnull()
的问题您需要在isnull()
''''
(您已经完成但部分完成):
declare @query nvarchar(MAX)
set @query = 'SELECT PID AS EID,
''637'' + p.SSN + SPACE(9- LEN(RTRIM(LTRIM(ISNULL(p.SSN,'''')))))
+ ''98''
+ CONVERT(VARCHAR(6), GETDATE(), 12)
+ SPACE(9)
+ ''A1''
+ @Str1
+ @Str2
+ ISNULL(LEFT(UPPER(@Str1),30),'''') + SPACE(30- LEN(RTRIM(LTRIM(ISNULL(LEFT(@Str1,30),'''')))))
+ ISNULL(LEFT(UPPER(@Str2),30),'''') + SPACE(30- LEN(RTRIM(LTRIM(ISNULL(LEFT(@Str2,30),'''')))))
+ SPACE(1)
+ SPACE(8) AS Data, GETDATE() AS CreatedOn
INTO #Temp
FROM dbo.PERSON p'
print @query -- see how query looks or try to compile query
exec sp_executesql @query;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.