2016-12-20 9 views
1

хранимая процедура:Хранимая процедура не вставлена ​​в таблицу, когда вызывается из зрения - SQL Server 2014

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 table и возвращает набор записей с идентификатором и именем компании. Когда я запускаю его из представления; он возвращает набор записей с идентификатором и фирменным именем ... но он не вставляется в таблицу zInvoices.

Любые предложения были бы весьма полезными.

+1

Определение представления может иметь только 'Одно Select' заявление. Вы не можете выполнить процедуру внутри проверки просмотра MSDN для получения дополнительных ограничений для представлений SQL Server. –

+0

Вы можете выполнить хранимую процедуру в представлении, пока хранимая процедура возвращает набор записей. – sgreen

ответ

0

Попробуйте запустить это что-либо увидеть возвращается:

SELECT Orders.InvoiceNo FROM Orders 
PostStatus = 2 
AND VoidFlag = 0 
AND LastModDate > ReplicationDateTime 
+0

Если ничего не вернется, вам нужно сначала изменить этот запрос на вставку, прежде чем вы сможете позволить вставить некоторые записи. – LONG

+0

Длинный - Да, он возвращает записи ... и представление возвращает записи. – sgreen

 Смежные вопросы

  • Нет связанных вопросов^_^