我有以下SQL Server上查詢,一些值存儲在前面計算的變量:如何逃生動態SQL單引號
SET @Command = N'INSERT INTO Products (Id
,Region
,Name
,Category
,CreatedBy
,CreatedOn
,) SELECT ' + @Id + ',
Region,
''' + @ProductName + ''',
Category,
CreatedBy,
CreatedOn FROM ' + @ProductTable + '
WITH (NOLOCK) WHERE Id IS NOT NULL';
EXEC(@Command)
它運行良好,除非@ProductName的價值包含引號(如:吉姆的產品),在這種情況下,我得到以下錯誤:字符串後閉合的引號
有沒有辦法來處理變量單引號在這樣的動態查詢,其中插入一個選定的值(@Pr在這種情況下的oductName)是直接插入的值,而不是源表上的實際列名,該表的值需要被檢索以進行插入?
是絕對必要在這裏做動態SQL? – Augwa
您正在使用哪個數據庫? – Utsav
@Utsav:SQL Server。也更新了主帖。 – Cranialsurge