2
我試圖在存儲過程中創建我的視圖,但是我遇到了一個錯誤。SQL Server:試圖在存儲過程中創建視圖
我的代碼是:
alter PROCEDURE p.Azmoon1
AS
begin
EXEC ('IF OBJECT_ID (''r.r_Sales01_Requests__Duplicates'', ''V'') IS NOT NULL
DROP VIEW r.r_Sales01_Requests__Duplicates ;
go
create view r.r_Sales01_Requests__Duplicates (
CompanyID
,Branch
,Year
,VoucherType,VoucherNumber
,Date_Persian
,Row
) as
select
CompanyID
,Branch
,Year
,VoucherType,VoucherNumber
,Date_Persian
,Row
from t_SalesRequests
group by CompanyID,Branch,Year,VoucherType,VoucherNumber,Date_Persian,Row
having count(*)>1
go
')
end
當我打電話給我的程序如下圖所示:
execute p.Azmoon1
我得到了這些錯誤:近
不正確的語法 '走'
「 CREATE VIEW'必須是查詢批處理中的第一條語句。
超過最大存儲過程,函數,觸發器或視圖嵌套級別(限制32)。
爲什麼要在存儲過程中創建視圖*沒有任何意義.... if你需要一個存儲過程中的視圖 - 你不能只是使用CTE(公用表表達式)嗎? – 2014-09-05 10:18:24
錯誤的原因是'GO'是**不是一個有效的SQL關鍵字 - 它是一個在SQL Server ** Management Studio **中可用的分隔符... – 2014-09-05 10:19:03
@marc_s我想在存儲過程中創建視圖,因爲我有近2500多個視圖來創建,並且我希望以後可以輕鬆更改它們的模式。 – 2014-09-05 10:24:09