У меня есть следующая модификация моей хранимой процедуры:Использование EXEC для создания хранимой процедуры для запуска обновления строки столбца в SQL Server 2008
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spTMSA_Test_Run]
@TableName nvarchar(200) = 'MyTable',
@Parent int = 1145,
@Name nvarchar(100) = '''Test''',
@KPI nvarchar(max) = '''Test''',
@IDCount int = 1137
AS
BEGIN
EXEC('UPDATE ' + @TableName + ' SET Parent = ' + @Parent + ', Name = ' + @Name + ' , KPI = ' + @KPI + ' WHERE IDCount = ' + @IDCount)
END
Эта процедура выполняется успешно, если я дал «»»до и после строковое значение. В случае, если я оставил «до и после строкового значения, это вызовет ошибку.
Пожалуйста, помогите мне найти причину и решение. Thanks
Поскольку ваш запрос является динамическим, и вы объединяете в него строку. Sql определит, что это строка, когда вы ее вложите в '' ' – Mani