请教一个SQL语句带变量字符串拼接问题

时间:2022-08-14 22:31:17
如果我在存储过程里拼接SQL语句,如下:
select @value = count(*) from UserInfo where UserID = @ipUserID;
然后通过判断@value来进行下面的操作,我该如何去做,该如何拼接

12 个解决方案

#1


?

#2



select @value = count(*) from UserInfo where UserID = @ipUserID; 
if(@value = 0)
begin
end
else
begin
end

#3


你要实现什么功能?

#4



if(@value = 0)
begin
     ------你的处理
end
else
begin
    ------你的处理

end

#5


呵呵 不明白意思

#6


是这样的,
declare @sql = 'select'+ @value + '= count(*) from UserInfo where UserID = ' + @ipUserID; 
    exec (sql)
    if @value is not null
      begin

      end

其实我是不会拼接这个SQL语句字符串

#7


引用 6 楼 tiancai20042008 的回复:
是这样的,
 declare @sql = 'select'+ @value + '= count(*) from UserInfo where UserID = ' + @ipUserID;
     exec (sql)
     if @value is not null
       begin

       end

 其实我是不会拼接这个SQL语句字符串

这个用 SP_EXECESQL就行了,交给小F

#8


就是得到存储过程输出值对吧

#9


是上面的语句我拼接的不对,导致得不到@value的值,然后,无法进行下面的操作

#10


引用 7 楼 guguda2008 的回复:
引用 6 楼 tiancai20042008 的回复:
是这样的,
declare @sql = 'select'+ @value + '= count(*) from UserInfo where UserID = ' + @ipUserID;
    exec (sql)
    if @value is not null
      begin

      end

其实我是不会拼接这个SQL语句字符串

这个用 SP_EXECESQL就行了,交给小F

同意,要用输出参数形式,

#11


那该如何来写呢

#12



你是在过程内还是外?
 内部用

SET @value =(select  count(*) from UserInfo where UserID = @ipUserID); 
你想要的判断,,,

外部
declare @i int,@s nvarchar(1000)
set @s=N'select  @i =count(*) from NUM '

exec sp_executesql @s,N'@i int output',@i output--此处输出参数要加上N
select @i

#1


?

#2



select @value = count(*) from UserInfo where UserID = @ipUserID; 
if(@value = 0)
begin
end
else
begin
end

#3


你要实现什么功能?

#4



if(@value = 0)
begin
     ------你的处理
end
else
begin
    ------你的处理

end

#5


呵呵 不明白意思

#6


是这样的,
declare @sql = 'select'+ @value + '= count(*) from UserInfo where UserID = ' + @ipUserID; 
    exec (sql)
    if @value is not null
      begin

      end

其实我是不会拼接这个SQL语句字符串

#7


引用 6 楼 tiancai20042008 的回复:
是这样的,
 declare @sql = 'select'+ @value + '= count(*) from UserInfo where UserID = ' + @ipUserID;
     exec (sql)
     if @value is not null
       begin

       end

 其实我是不会拼接这个SQL语句字符串

这个用 SP_EXECESQL就行了,交给小F

#8


就是得到存储过程输出值对吧

#9


是上面的语句我拼接的不对,导致得不到@value的值,然后,无法进行下面的操作

#10


引用 7 楼 guguda2008 的回复:
引用 6 楼 tiancai20042008 的回复:
是这样的,
declare @sql = 'select'+ @value + '= count(*) from UserInfo where UserID = ' + @ipUserID;
    exec (sql)
    if @value is not null
      begin

      end

其实我是不会拼接这个SQL语句字符串

这个用 SP_EXECESQL就行了,交给小F

同意,要用输出参数形式,

#11


那该如何来写呢

#12



你是在过程内还是外?
 内部用

SET @value =(select  count(*) from UserInfo where UserID = @ipUserID); 
你想要的判断,,,

外部
declare @i int,@s nvarchar(1000)
set @s=N'select  @i =count(*) from NUM '

exec sp_executesql @s,N'@i int output',@i output--此处输出参数要加上N
select @i