在打印标签中插入空记录

时间:2013-03-13 19:35:42

标签: sql sql-server stored-procedures

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

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

这很简单,但是当我测试它时,我没有得到任何数据。

1 个答案:

答案 0 :(得分:1)

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

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