0

我正在尝试创建一个打印我的供应商标签的 SP,供应商名称。我希望用户设置起始位置,在起始位置之前我只是简单地插入一个空值。我希望能够重复使用标签纸。

我有这样的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

您正在创建 table#data_null并更新它,但从不插入任何行。如果您@@rowcount在每次更新后进行检查,您会发现它为零。

在将该循环更改为insert而不是 之前update,请考虑设置一个永久表以供选择。在每次调用过程时生成 N 个值的循环实际上并不是对服务器时间或您的时间的最佳利用。;-)

于 2013-03-14T02:44:57.203 回答