Передача результата хранимой процедуры в табличную переменную

#stored-procedures #sql-server-2012 #ssis-2012

#хранимые процедуры #sql-server-2012 #ssis-2012

Вопрос:

Рассматриваемая хранимая процедура должна вызываться через пакет SSIS. Это остановило меня от использования #TempTable . По-видимому, они не могут быть использованы в ситуации с пакетом SSIS.

Поэтому я подумал, что вместо этого использую табличную переменную, но я не могу заставить ее скомпилироваться в SQL Server Management Studio.

 DECLARE @TempTable TABLE
(
    OrganisationId      INT NOT NULL,
    OrganisationName    NVARCHAR(120) NULL,
    SummaryText         NVARCHAR(MAX) NULL,
    Url                 VARCHAR(8000) NULL,
    Address1            NVARCHAR(255) NULL,
    Address2            NVARCHAR(255) NULL,
    Address3            NVARCHAR(255) NULL,
    City                NVARCHAR(50) NULL,
    County              NVARCHAR(50) NULL,
    Latitude            REAL NULL,
    Longitude           REAL NULL,
    Postcode            VARCHAR(8) NULL,
    LastUpdatedDate     DATETIME NULL,
    Geocode             GEOGRAPHY NULL,
    Contact             VARCHAR(1000) NULL,
    ContactMethodType   INT NULL,
    rn                  INT NULL,
);

INSERT INTO @TempTable
  EXEC [dbo].[GetServiceOrganisations] @ResultsViewListServices;

INSERT INTO @TempTable
  EXEC [dbo].[GetOrganisations] @ResultsViewListOthers;
  

Ошибка, которую я получаю в SQL Server Management Studio, является синтаксической ошибкой, вот она:

синтаксическая ошибка

Что здесь не так?

Комментарии:

1. Какое сообщение об ошибке?

2. Добавлено @EdHarper

3. У вас есть конечная запятая после определения rn . Удалите это, и вы сможете добиться прогресса.

4. Так глупо. Так глупо. Спасибо, это работает!

Ответ №1:

Хвала Эду Харперу за то, что он заметил запятую в конце.

Комментарии:

1. Я согласен, но в моем профиле вопрос будет отображаться как неотвеченный, знаете ли вы способ пометить такие вопросы как ответы, когда ответ содержится только в комментариях? @Ed если вы хотите, пожалуйста, оставьте свой комментарий в качестве ответа 🙂

Ответ №2:

 SELECT * INTO #MyTempTable 
FROM OPENROWSET('SQLNCLI', 
'Server=(local)SQL2008;Trusted_Connection=yes;',
 'EXEC stored proc name with params')
  

Добавить хранимую процедуру с параметрами