- सही प्रकार का प्रयोग करें
SYSNAME
पहचानकर्ताओं के लिए,NVARCHAR(MAX)
क्वेरी के लिए REPLACE
का उपयोग करें संयोजित करने के बजाय इसे डीबग करना बहुत आसान होगा, खासकर जब आपको स्ट्रिंग अक्षर की आवश्यकता होQUOTENAME
का उपयोग करने पर विचार करें समारोह
कोड:
DECLARE
@tableName SYSNAME,
@columnName SYSNAME,
@prompt VARCHAR(20),
@dynSQL NVARCHAR(MAX);
SET @tableName = QUOTENAME('A1-ExciseESN');
SET @columnName = QUOTENAME('Anode Excise ESN (A1)');
SET @dynSQL =
N'INSERT INTO <tableName>
([trav num], <columnName>)
Select [trav num], <columnName>
FROM [temprmi$] t1
PIVOT(min([Lvl1 Trace Data])
FOR [Prompt Text] IN (<columnName>)
) AS PVTTable
where <columnName> is not null
and [trav num] not in (select [trav num] from <tableName> )'
SET @dynSQL = REPLACE(REPLACE(@dynSQL, '<tableName>', @tableName),
'<columnName>', @columnName);
PRINT @dynSQL;
आउटपुट:
INSERT INTO [A1-ExciseESN]
([trav num], [Anode Excise ESN (A1)])
Select [trav num], [Anode Excise ESN (A1)]
FROM [temprmi$] t1
PIVOT(min([Lvl1 Trace Data])
FOR [Prompt Text] IN ([Anode Excise ESN (A1)])
) AS PVTTable
where [Anode Excise ESN (A1)] is not null
and [trav num] not in (select [trav num] from [A1-ExciseESN] )