【发布时间】:2016-12-20 20:49:44
【问题描述】:
存储过程:
ALTER PROCEDURE EXPORT_SALES
AS
-- insert invoice numbers into zInvoices table for use later
BEGIN
SET NOCOUNT ON;
INSERT INTO zInvoices
SELECT
Orders.InvoiceNo
FROM
Orders
WHERE
(Orders.PostStatus = 2
AND Orders.VoidFlag = 0
AND Orders.LastModDate > Orders.ReplicationDateTime);
-- get recordset of data to return to view
SELECT NewId() AS IRN, CompanyName
FROM Companies;
END
查看:
ALTER VIEW mvuEXPORT_SALES
AS
SELECT *
FROM openquery([local], 'SET FMTONLY OFF; SET NOCOUNT ON; EXEC DBName.user.EXPORT_SALES');
GO
如果我运行存储过程,它会插入 zInvoices 表并返回带有 Id 和 CompanyName 的记录集。当我从视图中运行它时;它返回带有 Id 和 CompanyName 的记录集...但它不会插入到 zInvoices 表中。
任何建议将不胜感激。
【问题讨论】:
-
视图定义只能有
Single Select语句。您无法在视图检查 MSDN 中执行过程以了解更多 SQL Server 视图的限制。 -
只要存储过程返回记录集,就可以在视图中执行存储过程。
标签: sql sql-server stored-procedures views