如果你想读那个表的内容,直接加个flag标志来确定不就OK了么 再用if ...else ...去判断所要执行的代码呀例如:if flag=1 读表1 else if flag=2 ....
--类似这样? create proecdure sp_test(@mobile varchar(20),@order int) as begin if @order=1 select * from my_Article where ... if @order=2 select * from my_teacher where ... if @order=3 select * from my_send where mobile=@mobile ... end go
create procedure sp_test(@mobile varchar(20),@order varchar(100)) as begin if exists(select 1 from my_send where mobile=@mobile) begin select * from my_Article where Articleid=@order end else begin insert into my_send(mobile,Articleid) select @mobile,@order select teacher_content from my_teacher where Articleid=@order end end go
先谢谢libin_ftsafe(子陌红尘) create procedure sp_test(@mobile varchar(20),@order varchar(100)) as begin if exists(select 1 from my_send where mobile=@mobile) begin select * from my_Article where Articleid=@order end else begin insert into my_send(mobile,Articleid) select @mobile,@order select teacher_content from my_teacher where Articleid=@order end end go 这样解决不了,麻烦各位高人了!
--有什么问题? ---------------------------------------------------------------------------------------------------------------------- create procedure sp_test(@mobile varchar(20),@order varchar(100)) as begin --先判断my_send中是否存在mobile为@mobile的记录 if exists(select 1 from my_send where mobile=@mobile) begin --存在,根据@order读取my_Article表中内容 select * from my_Article where Articleid=@order end else begin --不存在,my_send表插入@mobile和@order的值 insert into my_send(mobile,Articleid) select @mobile,@order --根据@order读取my_Article表的content的内容 select teacher_content from my_teacher where Articleid=@order end end go
create procedure sp_test(@mobile varchar(20),@order varchar(100)) as begin if exists(select 1 from my_send where mobile=@mobile) begin select * from my_Article where Articleid=@order end else begin insert into my_send(mobile,Articleid) select @mobile,@order if right(@order,1) = 'k' select teacher_content from my_teacher where Articleid=@order else select content from my_Article where Articleid=@order end end go
create procedure sp_test(@mobile varchar(20),@order varchar(100)) as begin --先判断my_send中是否存在mobile为@mobile的记录 if exists(select 1 from my_send where mobile=@mobile) begin --存在,根据@order读取my_Article表中内容 select * from my_Article where Articleid=@order end else begin --不存在,my_send表插入@mobile和@order的值 insert into my_send(mobile,Articleid) select @mobile,@order --根据@order读取相关表信息 if right(@order,1)='k' select teacher_content from my_teacher where Articleid=@order else select * from my_Article where Articleid=@order end end go
再用if ...else ...去判断所要执行的代码呀例如:if flag=1
读表1
else if flag=2
....
create proecdure sp_test(@mobile varchar(20),@order int)
as
begin
if @order=1
select * from my_Article where ...
if @order=2
select * from my_teacher where ...
if @order=3
select * from my_send where mobile=@mobile ...
end
go
若@mobile为13612345678,@order为QC00010k功能同上,只是读取的内容为 my_teacher表的teacher_content.表达的不太明白!见谅:)
as
begin
if exists(select 1 from my_send where mobile=@mobile)
begin
select * from my_Article where Articleid=@order
end
else
begin
insert into my_send(mobile,Articleid) select @mobile,@order
select teacher_content from my_teacher where Articleid=@order
end
end
go
create procedure sp_test(@mobile varchar(20),@order varchar(100))
as
begin
if exists(select 1 from my_send where mobile=@mobile)
begin
select * from my_Article where Articleid=@order
end
else
begin
insert into my_send(mobile,Articleid) select @mobile,@order
select teacher_content from my_teacher where Articleid=@order
end
end
go
这样解决不了,麻烦各位高人了!
----------------------------------------------------------------------------------------------------------------------
create procedure sp_test(@mobile varchar(20),@order varchar(100))
as
begin
--先判断my_send中是否存在mobile为@mobile的记录
if exists(select 1 from my_send where mobile=@mobile)
begin
--存在,根据@order读取my_Article表中内容
select * from my_Article where Articleid=@order
end
else
begin
--不存在,my_send表插入@mobile和@order的值
insert into my_send(mobile,Articleid) select @mobile,@order
--根据@order读取my_Article表的content的内容
select teacher_content from my_teacher where Articleid=@order
end
end
go
as
begin
if exists(select 1 from my_send where mobile=@mobile)
begin
select * from my_Article where Articleid=@order
end
else
begin
insert into my_send(mobile,Articleid) select @mobile,@order
if right(@order,1) = 'k'
select teacher_content from my_teacher where Articleid=@order
else
select content from my_Article where Articleid=@order
end
end
go
as
begin
--先判断my_send中是否存在mobile为@mobile的记录
if exists(select 1 from my_send where mobile=@mobile)
begin
--存在,根据@order读取my_Article表中内容
select * from my_Article where Articleid=@order
end
else
begin
--不存在,my_send表插入@mobile和@order的值
insert into my_send(mobile,Articleid) select @mobile,@order --根据@order读取相关表信息
if right(@order,1)='k'
select teacher_content from my_teacher where Articleid=@order
else
select * from my_Article where Articleid=@order
end
end
go
根据参数@mobile和@order来判断读取那个表的内容,并返回读取内容
是否是 @mobile表示表名 @order表示字段?如果是的话,不知道这个存储过程是不是
create procedure sp_test
@mobile varchar(20),
@order varchar(100)
as
declare @str_Sql VARCHAR(400)
select @str_Sql = "SELECT " + @order + " FROM " + @mobile
SP_EXECUTESQL(@str_Sql)
go
是我弄错了!
my_send表手机号、文章编、文章读取状态号和教师评语状态号,my_teacher是教师评语,my_Article是文章内容,根据@mobile和@order来读取相应的内容,是我没有表达清楚,不好意思!