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

Pass stored procedure result into a table variable

有问题的存储过程将通过 SSIS 包调用。这阻止了我使用 #TempTable。显然那些不能用于 SSIS 包的情况。

所以我想我应该使用 table 变量,但我无法在 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 中得到的错误是一个语法错误,这里是:

这里有什么问题?

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

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

添加带参数的存储过程