我想在下面的請求結束時創建一個視圖。 我知道'創建視圖'必須是查詢批處理中的第一條語句。我的問題是,對於這個查詢,我必須使用一個變量(@listOfIDRUB)。 這個變量只能在我的小腳本結尾正確填寫。我們可以在一個變量的腳本之後創建一個視圖嗎?
我也嘗試在我的第一個聲明之前創建視圖,但它創建了一個與「DECLARE」的問題。
那麼是否有可能從我的腳本的結果很容易地創建一個視圖或我必須做別的事情?
DECLARE @CounterResId int;
DECLARE @lePath varchar(255);
DECLARE @listOfIDRUB TABLE (EXTERNALREFERENCE uniqueidentifier, ID varchar(255), DOCID varchar(255));
DECLARE @Max int;
SET @lePath = '';
SET @CounterResId = 1;
SET @Max = (SELECT COUNT(*) FROM SYNTHETIC..EXTRANET_PURGE WHERE TYPE_SUPPR = 'ResId')
WHILE (@CounterResId <= @Max)
BEGIN;
set @lePath =
(select tmp.lePath from
(
select row_number() over(order by path)as NumLigne, CONCAT(path, '%') as lePath from RUBRIQUE
WHERE MODELE = 'CAEEE64D-2B00-44EF-AA11-6B72ABD9FE38'
and CODE in (SELECT ID FROM SYNTHETIC..EXTRANET_PURGE where TYPE_SUPPR='ResId')
) tmp
WHERE tmp.NumLigne = @CounterResId)
INSERT INTO @listOfIDRUB(EXTERNALREFERENCE, ID, DOCID)
SELECT SEC.EXTERNALREFERENCE , SEC.ID, SEC.DOCUMENTID
FROM WEBACCESS_FRONT..SECTIONS sec
inner join rubrique rub ON rub.ID_RUBRIQUE = sec.EXTERNALREFERENCE
inner join template_tree_item tti ON tti.id_template_tree_item = rub.modele
inner join template t ON t.id_template = tti.template
WHERE t.CODE IN (SELECT TEMPLATE_CODE from SYNTHETIC..EasyFlowEngineListTemplateCode)
and rub.path like @lePath
print @CounterResId;
print @lePath;
set @CounterResId = @CounterResId + 1;
END;
select * from @listOfIDRUB;
而不是select * from @listOfIDRUB
我想create view test as select * from listOfIDRUB
我也曾嘗試創建視圖測試爲(我的所有要求)
在'NVARCHAR'和'EXECUTE'中構建'CREATE VIEW'語句。 –
@TT。如果我正確理解OP,他想從整個陳述中創建一個VIEW - 這不會起作用... – Shnugo