У меня есть хранимая процедура, в которой я пытаюсь обновить столбец с содержимым @Value
.
Это моя хранимая процедура:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [PowerApp].[UpdateTableRequestSingle]
(@Solution nvarchar(100),
@ColumnName nvarchar(100),
@Value nvarchar(255),
@Record nvarchar(100),
@CreatedBy nvarchar(50),
@ExecutionFlag nvarchar(1))
AS
BEGIN
DECLARE @CRLF VARCHAR(2) = CHAR(13) + CHAR(10) --Linebreak
DECLARE @SQLStatement VARCHAR(MAX)
SET @SQLStatement = 'UPDATE [Extract' + @Solution + '].[TableRequest]' + @CRLF +
'SET [' + @ColumnName + '] = ' + '''' + @Value + '''' + @CRLF +
'WHERE TableName = ' + '''' + @Record + ''''
DECLARE @SQLStatementHistoryLog VARCHAR(MAX)
SET @SQLStatementHistoryLog = 'INSERT INTO [Extract' + @Solution + '].[TableRequestHistoryLog] ([SQLStatement], [CreatedBy])' + @CRLF +
'VALUES(''' + REPLACE(@SQLStatement,'''','''''') + ''',''' + @CreatedBy + ''')'
IF @ExecutionFlag = '0'
BEGIN
PRINT @SQLStatement
PRINT @SQLStatementHistoryLog
END
IF @ExecutionFlag = '1'
BEGIN
BEGIN TRANSACTION;
EXEC (@SQLStatement)
EXEC (@SQLStatementHistoryLog)
COMMIT TRANSACTION;
END
END;
И я ее выполняю с этим:
/*
[PowerApp].[UpdateTableRequestSingle]
@Solution = 'SF',
@ColumnName = 'TableDataRequestWhereCustomDescription',
@Value = 'CRM_CP_Owner_Company_Number__c IN ('190', '230', '440', '450', '480')',
@Record = 'Account',
@CreatedBy = 'DKRAH',
@ExecutionFlag = 1
*/
Если я передам
@Value = 'CRM_CP_Owner_Company_Number__c IN (190, 230, 440, 450, 480)'
, он работает, но я хочу, чтобы он работал с
@Value='CRM_CP_Owner_Company_Number__c IN ( '190', '230', '440', '450', '480')'
Кто-нибудь знает, как редактировать T - SQL чтобы все заработало.