【问题标题】:Data in the table as the set of input parameters to a stored proc in sql server表中的数据作为 sql server 中存储过程的输入参数集
【发布时间】:2011-07-04 17:50:21
【问题描述】:

我有一个过程,它接受输入参数并填充到新数据库的 5 个不同的表中。在旧数据库中,数据被放在一个表中。存储过程的执行是

exec registration ('abc company', 'abc', '1/12/2004', '1/14/2010', 
                   'active', 'www.abccompany.com')

我的问题是..

'abc company','abc','1/12/2004','1/14/2010','active','www.abccompany.com'过程中提供的输入参数是数据库中一张表中的一条记录。我在该表中有 1000 条记录。有没有办法让表数据成为存储过程的输入参数?如果有怎么办?

【问题讨论】:

    标签: sql database sql-server-2008 stored-procedures import


    【解决方案1】:

    从 SQL Server 2008 开始,您可以将表值参数传递给存储过程。这样做需要定义用户定义的类型来表示输入。

    http://msdn.microsoft.com/en-us/library/bb675163.aspx

    【讨论】:

      【解决方案2】:

      如果只有一行,您可以“教”您的存储过程从该表中获取所需的数据并仅将 ID 作为参数传递。

      类似这样的:

      CREATE PROCEDURE PopulateTables (@SourceID int)
      AS BEGIN
        INSERT INTO Table1
          (CompanyName, CompanyNameShort, DateA, DateB, Status, CompanyWebsite)
        SELECT
          CompanyName, CompanyNameShort, DateA, DateB, Status, CompanyWebsite
        FROM SourceTable
        WHERE ID = @SourceID
        ... /* same for the other 4 tables */
      END;
      

      【讨论】:

        猜你喜欢
        • 2012-03-15
        • 2018-11-27
        • 1970-01-01
        • 2012-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多