create procedure sp_test @i int as declare @str varchar(200) set @str ='Sql ' if (@i <> 0) or (@i is not null) set @str += 'is pig' print @str goexec sp_test 0 为什么最后输出的是Sql is pig
create procedure sp_test @i int as declare @str varchar(200) set @str ='Sql ' if (@i <> 0) or (@i is not null) begin set @str += 'is pig' print @str end go
if (@i <> 0) and (@i is not null)
create procedure sp_test @i int =null as declare @str varchar(200) set @str ='Sql ' if (@i = 0) or (@i is null) set @str += 'is pig' print @str goexec sp_test Sql is pigexec sp_test 0Sql is pig写错了吧
alter procedure sp_test @i int =null as declare @str varchar(200) set @str ='Sql ' if (@i <> 0) and (@i is not null) set @str += 'is pig' print @str goexec sp_test Sql exec sp_test 0Sql
@i <> 0 为假 或 @i is not null 为真,当然就是真了,输出肯定是 Sql is pig 哈哈
@i int
as
declare @str varchar(200)
set @str ='Sql '
if (@i <> 0) or (@i is not null)
begin
set @str += 'is pig'
print @str
end
go
@i int =null
as
declare @str varchar(200)
set @str ='Sql '
if (@i = 0) or (@i is null)
set @str += 'is pig'
print @str
goexec sp_test Sql is pigexec sp_test 0Sql is pig写错了吧
要么 if isnull(@i, 0)<>0 代替
@i int =null
as
declare @str varchar(200)
set @str ='Sql '
if (@i <> 0) and (@i is not null)
set @str += 'is pig'
print @str
goexec sp_test Sql exec sp_test 0Sql