我在 SQL Server 2019 中有以下 SQL 查詢
DECLARE @CoustomerCode nvarchar(255)
set @CoustomerCode = 1165
select * from tblCustomer CC
outer apply(SELECT * FROM OPENQUERY ([132.20.28.36], 'SELECT * FROM RepServiceDB.dbo.Info(' @CoustomerCode ')' ) as SR ) HH
where CC.fldCustomerCode = @CustomerCode
SQL錯誤:
' ' 附近的語法不正確。
uj5u.com熱心網友回復:
如果必須使用,則必須使用動態 SQL,OPENQUERY因為呼叫中的查詢必須是文字:
DECLARE @SQL nvarchar(MAX),
@CRLF nchar(2) = NCHAR(13) NCHAR(10);
DECLARE @CoustomerCode nvarchar(255);
SET @CoustomerCode = N'1165'; --This is an nvarchar, so you should define it as one.
SET @SQL = N'SELECT *' @CRLF
N'FROM dbo.tblCustomer CC ' @CRLF
N' OUTER APPLY(SELECT * FROM OPENQUERY ([132.20.28.36], ''SELECT * FROM RepServiceDB.dbo.Info(''''' REPLACE(@CoustomerCode,'''','''''''''') ''''')'' ) as SR ) HH' @CRLF
N'WHERE CC.fldCustomerCode = @CoustomerCode;';
EXEC sys.sp_executesql @SQL, N'@CoustomerCode nvarchar(255)',@CoustomerCode;
而且,是的,我確實'在陳述句中用四個單引號 ( ) 替換了單引號 ( )。這是因為它是文字字串,在文字字串內部,在文字字串內部,所以需要雙重轉義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/414976.html
標籤:
上一篇:多級位置-輸出為分隔系列
