[英]Dynamic SQL Execution Issue
我在 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
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.