Как вставить результаты StoredProc в таблицу, но указать другую дату

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

Код ниже, очевидно, не будет работать, но это "что-то", что я пытаюсь сделать?

    INSERT INTO [schema].[Table]
               ([column1]
               ,[column2]
               ,[column3]
               ,[column4]
               ,[DateColumn])
    VALUES(
        EXEC('schema.StoredProc'), 
        GETDATE()
    )

3 ответа

Измените столбец даты, чтобы иметь значение по умолчанию:

alter table [schema].[Table] add constraint def_table_column default getdate() for datecolumn;

Затем сделайте insert:

INSERT INTO [schema].[Table]([column1], [column2], [column3], [column4])
    EXEC 'schema.StoredProc' ;

Для альтернативного решения; Вы можете использовать функцию табличного значения вместо процедур.

INSERT INTO  [schema].[Table]
               ([column1]
               ,[column2]
               ,[column3]
               ,[column4]
               ,[DateColumn])
SELECT *,GETDATE() FROM dbo.fn_YourFunction()

Пожалуйста, попробуйте это.

If Object_Id('tempdb.dbo.#Tmp_datatable') Is Not NULL
Begin
    Drop Table dbo.#Tmp_datatable
End

INSERT Tmp_datatable EXEC('schema.StoredProc')

INSERT INTO  [schema].[Table]
           ([column1]
           ,[column2]
           ,[column3]
           ,[column4]
           ,[DateColumn])
SELECT *,GETDATE() FROM Tmp_datatable 

Также вы можете выполнить другую операцию на временном столе.

Другие вопросы по тегам