【问题标题】:Pass stored procedure result into a table variable将存储过程结果传递到表变量中
【发布时间】:2016-10-11 13:34:25
【问题描述】:

有问题的存储过程将通过 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 中遇到的错误是语法错误,这里是:

这里有什么问题?

【问题讨论】:

  • 错误信息是什么?
  • 添加了@EdHarper
  • rn 的定义后面有一个逗号。删除它,你应该能够取得进展。
  • 太傻了。太傻了。谢谢,它有效!

标签: stored-procedures sql-server-2012 ssis-2012


【解决方案1】:

感谢 Ed Harper 发现尾随逗号。

【讨论】:

  • 这应该是一条评论,最有帮助的是,要求 Ed 粘贴评论作为答案并接受它\
  • 我同意,但是在我的个人资料中,它会将问题显示为未回答,您知道当答案仅在 cmets 中时将此类问题标记为已回答的方法吗? @Ed 如果您愿意,请发表您的评论作为答案:)
【解决方案2】:
SELECT * INTO #MyTempTable 
FROM OPENROWSET('SQLNCLI', 
'Server=(local)\SQL2008;Trusted_Connection=yes;',
 'EXEC stored proc name with params')

使用参数添加存储过程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多