我有 3 张桌子
Table_A有一堆行Table_B将使用来自的数据插入行的位置Table_ATable_C保存一个数字(整数),称为code_number
我有一个存储过程(sp_getNextCode),它选择当前code_numberfrom Table_C,创建并返回一个带有这个数字(比如或其他东西)的varchar代码字符串,并用下一个值()更新yyyyMMdd + cast(code_number as varchar)Table_C code_numbercode_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
有什么方法可以实现这一点,或者唯一的方法是使用游标(我真的想避免使用游标,因为我在谈论需要插入的数千行并且需要太长时间)