如何在没有命令参数的插入语句中调用函数/过程。例如
Insert into myTable (....) values (1,2,mySP_or_mySDF, 3,4)
如何在没有命令参数的插入语句中调用函数/过程。例如
Insert into myTable (....) values (1,2,mySP_or_mySDF, 3,4)
你也可以使用INSERT INTO... SELECT
INSERT INTO myTable (col1, col2, col3....)
SELECT 1, 2, mySP_or_mySDF(), 3, 4
如果INSERT
要从存储过程中获取数据,则需要先创建一个临时表并将结果插入到临时表中,然后才能使用结果插入到最终表中。
尝试
Insert into myTable (....) values (1,2,dbo.mySP_or_mySDF(), 3,4)
不能在 SELECT/UPDATE/INSERT 语句中调用存储过程,语句 SQL 除外:
insert into <whatever>
exec <some sql statement here>;
(和相关的结构)。
存储过程并不真正返回值。好吧,它们确实返回一个整数。所以,你可以这样做:
declare @retval int;
exec @retval = mysp;
insert into myTable(col1, col2, col3, col4)
select 1, 2, @retval, 3, 4
通过在 sp 正文中包含以下语句,您可以让存储过程“返回”所有 4 个值:
select 1, 2, <whatever>, 3, 4
然后插入 myTable(col1, col2, col3, col4) exec mysp;