В приведенном ниже запросе я пытаюсь установить значение @productsExist
, используя динамический запрос, который выполняется sp_executesql
в SQL Server 2012. Проблема в том, что, хотя таблица @tableName
существует и содержит записи, значение productsExist
всегда равно null
после выполняется динамический запрос.
Вопрос. Почему запрос возвращает значение null для @productsExist
, даже если таблица существует и содержит записи?
DECLARE @productsExist INT;
DECLARE @countQuery NVARCHAR(MAX) = 'IF OBJECT_ID(@tableName, N''U'') IS NOT NULL
begin select top(1) @productsExist = 1 from ' + @tableName + ' end';
EXECUTE sp_executesql @countQuery, N'@tableName varchar(500),@productsExist INT',
@tableName = @tableName,
@productsExist = @productsExist;
select @productsExist as ProductsExist--returns always a NULL value for ProductsExist