Могу ли я вставить во временную таблицу результат хранимой процедуры плюс другое значение? - PullRequest
2 голосов
/ 14 февраля 2009

У меня есть временная таблица, которой нужны значения хранимой процедуры. Таким образом, SP вставляет 3 столбца во временную таблицу, затем я хочу добавить дату и время к каждой строке, не изменяя SP.

Поскольку я вызываю SP 3 раза, каждый раз с разными датами и временем, я не могу просто обновить всю временную таблицу.

Есть предложения?

DECLARE @temp TABLE
(
    id INT IDENTITY(1,1),
    Name VARCHAR(150),
    Address VARCHAR(25),
    Date DATETIME
)

WHILE (@count>=@daysBack)
BEGIN
    SET @date=DATEADD(dd, @count, GETDATE())
    INSERT INTO @temp (Name,Address)
        EXEC[dbo].StoredProc@date

--I Want to check for Null and insert the date there
    Update @temp SET Date=@date WHERE Date='' 

    SET @count=@count-1

1 Ответ

2 голосов
/ 14 февраля 2009

Да. Создайте временную таблицу и в столбце добавленной даты, который не имеет представления из вашего sproc, установите ограничение по умолчанию для getdate () или любую другую формулу даты, которая вам нужна. В операторе вставки укажите столбцы явно и опустите столбец даты, и это должно работать. Когда строки будут добавлены, ограничение значения по умолчанию вступит в силу и заполнит этот столбец для вас.

пример:

create table #tmp (c1 int, c2 int, dt datetime default(getdate()) )

insert into #tmp
(c1, c2)
exec mysproc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...