我有一个存储过程--prCreateID 代码如下:CREATE PROCEDURE prCreateID 
@chvTableName varchar(20) 
AS
if @chvTableName='sp_ggcs'
begin
declare @intGgcsId int,@chvsp_ggcs_id varchar(50),@chvGGCSBJD_QYID varchar(50),@chvparent_id_ggcs varchar(50),@chvUser_Keyid_ggcs varchar(20),@chvGGCSBJD_ID varchar(50),@intNum_ggcs int,@intNum2_ggcs int
declare c_spws_view cursor 
for select id,sp_ggcs_id,GGCSBJD_QYID,parent_id,user_keyid,GGCSBJD_ID from view_ggcs_shangchuan where shangchuan is null or shangchuan=''
open c_spws_view
declare @chvQYBH_ggcs varchar(50)
fetch next from c_spws_view into @intGgcsId,@chvsp_ggcs_id,@chvGGCSBJD_QYID,@chvparent_id_ggcs,@chvUser_Keyid_ggcs,@chvGGCSBJD_ID
set @intNum_ggcs=0
set @intNum2_ggcs=0
WHILE @@FETCH_STATUS = 0
BEGIN
if (@chvUser_Keyid_ggcs='' or @chvUser_Keyid_ggcs is null)
begin
set @chvUser_Keyid_ggcs=''
end
if (@chvsp_ggcs_id <> '' and @chvsp_ggcs_id is not null)
begin
--判断GGCSBJD_QYID是否为空
if (@chvGGCSBJD_QYID<>'' and @chvGGCSBJD_QYID is not null)
begin
if (@chvGGCSBJD_ID='' or @chvGGCSBJD_ID is null)
begin
set @chvQYBH_ggcs=right(convert(varchar(4),year(getdate())),2)+convert(varchar(2),month(getdate()))+convert(varchar(2),day(getdate()))+convert(varchar(30),@intGgcsId)+ @chvUser_Keyid_ggcs
update sp_ggcs_add set GGCSBJD_ID=@chvQYBH_ggcs where sp_ggcs_id=@intGgcsId
end
--print 'QYBH is not null'
end
else--QYBH为空
begin
if (@chvparent_id_ggcs='' or @chvparent_id_ggcs is null)
begin
if (@chvGGCSBJD_ID='' or @chvGGCSBJD_ID is null)
begin
set @chvQYBH_ggcs=right(convert(varchar(4),year(getdate())),2)+convert(varchar(2),month(getdate()))+convert(varchar(2),day(getdate()))+convert(varchar(30),@intGgcsId)+@chvUser_Keyid_ggcs
update sp_ggcs_add set GGCSBJD_ID=@chvQYBH_ggcs,GGCSBJD_QYID=@chvQYBH_ggcs where sp_ggcs_id=@intGgcsId
end
else
begin
set @chvQYBH_ggcs=right(convert(varchar(4),year(getdate())),2)+convert(varchar(2),month(getdate()))+convert(varchar(2),day(getdate()))+convert(varchar(30),@intGgcsId)+@chvUser_Keyid_ggcs
update sp_ggcs_add set GGCSBJD_QYID=@chvQYBH_ggcs where sp_ggcs_id=@intGgcsId
end
end
else
begin
if (@chvGGCSBJD_ID='' or @chvGGCSBJD_ID is null)
begin
set @chvQYBH_ggcs=right(convert(varchar(4),year(getdate())),2)+convert(varchar(2),month(getdate()))+convert(varchar(2),day(getdate()))+convert(varchar(30),@intGgcsId)+@chvUser_Keyid_ggcs
update sp_ggcs_add set GGCSBJD_ID=@chvQYBH_ggcs where sp_ggcs_id=@intGgcsId
end
end
--print 'QYBH is null'
end
set @intNum_ggcs=@intNum_ggcs+1
end
else--如果sp_ggcs_id为空,直接插入,
begin
set @chvQYBH_ggcs=right(convert(varchar(4),year(getdate())),2)+convert(varchar(2),month(getdate()))+convert(varchar(2),day(getdate()))+convert(varchar(30),@intGgcsId)+@chvUser_Keyid_ggcs
insert into sp_ggcs_add(sp_ggcs_id,GGCSBJD_ID,GGCSBJD_QYID) values (@intGgcsId,@chvQYBH_ggcs,@chvQYBH_ggcs)
print @chvQYBH_ggcs
set @intNum2_ggcs=@intNum2_ggcs+1
end
FETCH NEXT FROM c_spws_view into @intGgcsId,@chvsp_ggcs_id,@chvGGCSBJD_QYID,@chvparent_id_ggcs,@chvUser_Keyid_ggcs,@chvGGCSBJD_ID
END
CLOSE c_spws_view
DEALLOCATE c_spws_view
end
GO----------------------------
主要功能实现生成一个ID号.
其中select id,sp_ggcs_id,GGCSBJD_QYID,parent_id,user_keyid,GGCSBJD_ID from view_ggcs_shangchuan where shangchuan is null or shangchuan=''
从视图view_ggcs_shangchuan 检索出的数据中:sp_ggcs_id 有NUll或者空值,
GGCSBJD_QYID,parent_id,user_keyid,GGCSBJD_ID 有NULL或者空值
各位能否帮我查处这个存储过程中是否有逻辑或者其他方面的错误?
因为print @chvQYBH_ggcs 输出的结果居然也有空值,应该是不能出现空值的.
多谢各位!