我有这个代码:
DECLARE @xml_var XML
SET @xml_var =
(
SELECT ID_CODE AS '@ProductionId',
CODE AS '@ItemId',
CODE_LEVEL AS '@ItemPackagingLevelId',
COMMISIONING_FLAG AS '@ItemFlag',
TIMESPAN AS '@TimeStamp',
USERNAME AS '@Username',
SOURCE AS '@Source'
FROM TRZIC.dbo.CODES_TEMP
FOR XML PATH('Item'),
ROOT('Commissioning')
)
DECLARE @xml_str NVARCHAR(MAX) = CONVERT(NVARCHAR(MAX), @xml_var)
DECLARE @SqlCommand NVARCHAR(MAX) = N'SELECT *
FROM OPENQUERY([UIC160\SQLEXPRESS],''EXEC TRZIC.dbo.AddCommissioning @data = ''' + @xml_str +''')'
-- DEBUG
PRINT @SqlCommand
EXEC sp_ExecuteSQL @SqlCommand;
PRINT @SqlCommand 的一部分是:
SELECT *
FROM OPENQUERY([UIC160\SQLEXPRESS],'EXEC TRZIC.dbo.AddCommissioning @data = '<Commissioning><
而且,EXEC sp_ExecuteSQL @SqlCommand;
我得到:
Incorrect syntax near '<'
.
我究竟做错了什么?