gpt4 book ai didi

sql-server - 从 INSERT INTO 中调用存储过程

转载 作者:行者123 更新时间:2023-12-02 17:25:23 26 4
gpt4 key购买 nike

所以我有一个接受 DATETIME 参数 date 的存储过程。它将该值插入到另一个表中并返回该 ID。

让我们调用这个存储过程 getTimeID。其中 DimTime 是插入 DATETIME 参数的表。

所以我想复制到 TableB ID 和 TimeID,而不是 ID 和日期。

我正在尝试:

INSERT INTO  [TableA].dbo.Main (ID, timeID) 
SELECT ID,
(EXEC getTimeID date)
FROM [TableB].dbo.Main

但我无法使 EXEC 上的语法正常工作。

请帮忙。

最佳答案

从存储过程插入的语法是:

INSERT INTO TheTable (col1, col2) EXEC TheStoredProcedure

它非常不灵活:表必须与存储过程的精确列布局匹配。

一种可能的解决方案是将存储过程的结果存储到表变量中。例如:

declare @id int
select @id = ID
from [TableB].dbo.Main

declare @t table (TimeID int)
insert @t (TimeID) exec getTimeID '2011-01-20'

declare @TimeID int
select @TimeID = TimeID
from @t

insert [TableA].dbo.Main values (@ID, @TimeID)

关于sql-server - 从 INSERT INTO 中调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com