我有 3 张桌子
Table_A
有一堆行Table_B
将使用来自的数据插入行的位置Table_A
Table_C
保存一个数字(整数),称为code_number
我有一个存储过程(sp_getNextCode
),它选择当前code_number
from Table_C
,创建并返回一个带有这个数字(比如或其他东西)的varchar
代码字符串,并用下一个值()更新yyyyMMdd + cast(code_number as varchar)
Table_C
code_number
code_number+1
到目前为止,一切都很好。
现在我想在Table_A
不Table_B
使用光标的情况下使用
INSERT INTO TABLE_B
SELECT .... FROM TABLE_A
到目前为止还不错
问题是上述插入语句中的值之一必须是存储过程的输出sp_getNextCode
。
- 我不能在语句中使用存储过程
- 我无法创建与
sp_getNextCode
函数不能具有相同代码的函数INSERT/UPDATE/DELETE
我没有 SQL Server 2012 的选项(它有一个序列)只有 SQL Server 2008
有什么方法可以实现这一点,或者唯一的方法是使用游标(我真的想避免使用游标,因为我在谈论需要插入的数千行并且需要太长时间)