ниже - мой SQL-запрос.Он содержит переменную, поэтому я думаю, его нельзя сохранить как VIEW.Как я могу заставить его работать с функцией / хранимой процедурой / представлением?
DECLARE @sql varchar(max);
SELECT @sql = Coalesce(@sql + ' UNION ALL ', '') +
'SELECT * FROM ' + QuoteName(DatabaseName) + '.dbo.states'
FROM sanketuniversal.dbo.databasemaster
where itemdata = 0 and CustomerGroupfordisplay = 1;
--PRINT @sql
EXEC (@sql);
Другой вариант - функция.Я также пытался, но получал ошибку.
CREATE FUNCTION dbo.MNReport()
RETURNS @MN_table TABLE (
SIDs VARCHAR(MAX) NOT NULL,
StateName VARCHAR(20) NOT NULL
)
AS
BEGIN
DECLARE @sql varchar(max);
INSERT INTO @MN_table
SELECT @sql = Coalesce(@sql + ' UNION ALL ', '') +
'SELECT count(*) FROM ' + QuoteName(DatabaseName) + '.dbo.states'
FROM sanketuniversal.dbo.databasemaster
where itemdata = 0 and CustomerGroupfordisplay = 1;
RETURN;
END;
Ошибка: «Инструкция INSERT не может содержать инструкцию SELECT, которая присваивает значения переменной» *