表A
F_name F_Flag(bit型)
aaa 1
bbb 0求一存贮过程,传入参数@Flag=1把F_Flag=1的记录查询出来,
传入参数@Flag=0 查询出F_Flag=0的记录,
传入参数@Flag=-1 查询出所有记录
F_name F_Flag(bit型)
aaa 1
bbb 0求一存贮过程,传入参数@Flag=1把F_Flag=1的记录查询出来,
传入参数@Flag=0 查询出F_Flag=0的记录,
传入参数@Flag=-1 查询出所有记录
create proc wsp
@flag int
as
if(@flag=1 or @flag=0)
select * from a where flag=@flag
else
select * from a --调用存储过程exec wsp 1
--字段写错。create proc wsp
@flag int
as
if(@flag=1 or @flag=0)
select * from a where F_Flag=@flag
else
select * from a --调用存储过程exec wsp 1
create proc wsp
@flag int
as
declare @s varchar(100)if(@flag=1 or @flag=0)
set @s = 'F_Flag='+ltrim(@flag)
exec('select * from a where '+ @s) --调用存储过程exec wsp 1
set @s = ' where F_Flag='+ltrim(@flag)
exec(' select * from a '+ @s)
set @s = ' select * from a '
if(@flag=1 or @flag=0)
set @s = @s +' where F_Flag='+ltrim(@flag) exec(@S)
/*表A
F_name F_Flag(bit型)
aaa 1
bbb 0 求一存贮过程,传入参数@Flag=1把F_Flag=1的记录查询出来,
传入参数@Flag=0 查询出F_Flag=0的记录,
传入参数@Flag=-1 查询出所有记录 */
use tempdb
goif object_id('temp..#') is not null
drop table #
create table #(f_name varchar(10),f_flag bit )insert into #
select 'aaa',1
union all
select 'bbb',0select * from # drop procedure dbo.query_data
go
create procedure dbo.query_data
@flag int
as
begin
set nocount on
if @flag in (1,0)
select * from # where f_flag = cast(@flag as bit)
else if @flag=-1
select * from #
else
raiserror('you intput @plag-=%d vlaue is error',16,1,@flag)
end
go--exec dbo.query_data 0
--exec dbo.query_data 1
--exec dbo.query_data -1
--exec dbo.query_data -4