0

ベンダーのラベル、ベンダー名を印刷する SP を作成しようとしています。ユーザーに開始位置を設定してもらいたいのですが、開始位置の前に null 値を挿入するだけです。ラベルシートを再利用できるようにしたい。

私は次のようなSPコードを持っています:

Alter PROCEDURE [dbo].[z_sp_APVendorLabel]
    (@VendorGroup bGroup ,
     @StartPosition int)

AS
BEGIN
    SET NOCOUNT ON;
    Create table #data_null
    (Vendor int,
     Name varchar(60)null)

Declare @counter int
SET @counter = 0
WHILE @counter <  @StartPosition
BEGIN
     UPDATE #data_null  SET Vendor='',Name=' '
     SET @counter = @counter + 1

END

Create table #detial
(Vendor int,
 Name varchar (60)null)

 select Vendor, Name into  #data from APVM 
 WHERE VendorGroup= @VendorGroup

select * from #data_null
Union All
select * from #detial


END

非常に単純ですが、テストするとデータが得られませんでした。

4

1 に答える 1

1

テーブルを作成して#data_null更新していますが、行を挿入していません。各更新後に検査する@@rowcountと、ゼロであることがわかります。

そのループをinsertの代わりに に変更する前にupdate、選択する永続的なテーブルを設定することを検討してください。プロシージャの呼び出しごとに N 個の値を生成するループは、実際にはサーバーの時間、またはあなたの時間の最適な使い方ではありません。;-)

于 2013-03-14T02:44:57.203 に答える