将存储过程结果传递给表变量

时间:2016-10-11 13:34:26

标签: stored-procedures 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中遇到的错误是语法错误,这里是:

syntax error

这里有什么问题?

2 个答案:

答案 0 :(得分:0)

感谢Ed Harper发现尾随的逗号。

答案 1 :(得分:0)

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

使用params

添加存储过程