Можно ли передать строку в хранимую процедуру, которая не является именем столбца?
Мне нужно вызвать StoredProcedure из C #.
Следующее не работает, так как параметр не может быть определен без его Типа, но показывает, что я пытаюсь сделать.Проблема в том, что Sql смотрит на @stringToIdentifyDataTable как ColumnName, что кажется справедливым, но не то, что я пытаюсь сделать.
Alter PROCEDURE [dbo].[PutNewTypeSource] @stringToIdentifyDataTable,
@ID int, @Description varchar(50), @Active bit
AS
DECLARE
@Query AS VARCHAR(MAX),
@Field_Out AS VARCHAR(MAX)
SELECT @Field_Out = CASE @stringToIdentifyDataTable
WHEN 'ReferralSource' THEN '[Adm].[JobReferralSource]'
WHEN 'ReferralSource2' THEN '[Adm].[JobReferralSource2]'
END
SET @Query = concat('
IF EXISTS (SELECT ID FROM ',@Field_Out,' WHERE Description= ',@Description,')
BEGIN
UPDATE ',@Field_Out,
'SET Active = ',@Active,
'WHERE Description= ',@Description,';
END')
EXEC (@Query)
exec [PutNewTypeSource] 'ReferralSource', 1, 'Description1', 0