日期:2014-05-17  浏览次数:20354 次

将查询语句转换成存储过程
查询语句:
create table #shanying(试卷id varchar(10))
 insert into #shanying values(22)
 select id into #table from shanying_single_select
 insert into relation_single_select select *from #shanying cross join #table

存储过程必须有两个参数:@试卷id varchar(10),@user_name varchar(30)
偶做了以下改写,但结果是不正确的。
alter PROCEDURE 保存试题修改
@试卷id varchar(10),
@user_name varchar(30)
AS
begin
declare @sql nvarchar(100)
create table #paper_id(试卷id varchar(10))
insert into #paper_id values(@试卷id)
create table #problem_id(题目id varchar(10))
set @sql='select id into #problem_id from '+@user_name+'_single_select'
exec sp_executesql @sql
insert into relation_single_select select * from #problem_id cross join #paper_id
end
RETURN

首先create table #problem_id(题目id varchar(10))这句省不了,不然后面的insert语句就会报错,不知是否真的没办法省掉了。
像我改写的那样虽然执行不报错,但是结果不对的啊。最后relation_single_select表里是空的

------解决方案--------------------
你那题的题意 没有表达清楚。

首先你要 说说
1·你的表的表名:
2·有那几个字段,是什么类型,
3·你要进行哪些操作,要达到哪目的。
4·现在你写的sql 语句是什么,
5·在哪里出错.
6·出错的提示是什么。

所以说:
要说清楚啊,
不然人家给你答题还要给你猜么?