Данные в таблице как набор входных параметров для хранимых процедур на сервере SQL - PullRequest
1 голос
/ 26 февраля 2011

У меня есть процедура, которая принимает входные параметры и заполняет 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 записей в этой таблице. Есть ли способ, что данные таблицы могут стать моими входными параметрами для хранимой процедуры? Если так, то как?

Ответы [ 2 ]

1 голос
/ 26 февраля 2011

Начиная с SQL Server 2008, вы можете передавать параметр с табличным значением в хранимую процедуру. Для этого требуется определение определенного пользователем типа для представления ввода.

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

0 голосов
/ 26 февраля 2011

Если это только одна строка, вы можете «научить» свою хранимую процедуру брать необходимые данные из этой таблицы и передавать в качестве параметра только идентификатор.

Примерно так:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...