我正在尝试创建一个打印供应商名称的供应商名称的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
这很简单,但是当我测试它时,我没有得到任何数据。
答案 0 :(得分:1)
您正在创建表#data_null
并更新它,但从不插入任何行。如果您在每次更新后检查@@rowcount
,则会看到它为零。
在将该循环更改为insert
而不是update
之前,请考虑设置永久表格以供选择。在每次调用过程时生成N值的循环实际上并不是最好地利用服务器的时间,也不是你的。 ;-)