Как вставить результаты 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
Также вы можете выполнить другую операцию на временном столе.