私は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
ここまでは順調ですね。
今、私はCURSOR を使用せ ずに からTable_A
までの行を挿入したいと思いますTable_B
INSERT INTO TABLE_B
SELECT .... FROM TABLE_A
繰り返しますが、これまでのところとても良いです
問題は、上記の挿入ステートメントの値の 1 つがストアド プロシージャの出力でなければならないことsp_getNextCode
です。
- ステートメントでストアド プロシージャを使用できません
- 関数が持つことができないのと同じコードで関数を作成することは
sp_getNextCode
できませんINSERT/UPDATE/DELETE
SQL Server 2012 (シーケンスがある) のオプションはありません。SQL Server 2008 のみです。
これを達成する方法はありますか、それとも唯一の方法はカーソルを使用することです(カーソルを避けたいのは、挿入する必要がある何千もの行について話していて、時間がかかりすぎるためです)