Может ли кто-нибудь объяснить, почему следующее дает мне «Должен объявить скалярную переменную @facilities». но отлично работает, если я буду использовать VARCHAR вместо моего созданного типа? Как я могу это исправить?Должен объявить скалярную переменную с табличными параметрами и хранимой процедурой
ТИА
--CREATE TYPE integer_list AS TABLE (n int NOT NULL PRIMARY KEY)
--DROP PROCEDURE spTestTVP
CREATE PROCEDURE spTestTVP (
@facilities integer_list READONLY
[email protected] varchar(100)
)
AS
DECLARE @sql nvarchar(4000)
SET @sql = 'SELECT * FROM TestTable'
SET @sql = @sql + ' WHERE 1=1 '
IF @facilities IS NOT NULL
SET @sql = @sql + ' AND (FacilityNo IN (' + @facilities + ') OR FacilityNo IS NULL)'
EXEC sp_executesql @sql