因为你这种可能循环啊游标随排序后可以自动退出
ALTER PROCEDURE ichoice --多项选择题
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON; -- Insert statements for procedure here
declare @total int --, @t int
set @total = 0
-- set @t = 0
create table #result( subjectid nvarchar(20) null,
tigan nvarchar(4000) null,
id2 varchar(53) null,
optionid varchar(50) null,
optioncontent varchar(255) null,
rightkey varchar(53) null,
) while @total < 80
BEGIN
SELECT T.subjectid, T.tigan,X.id2, X.optionid, X.optioncontent,X.rightkey
into #itmp
FROM (SELECT TOP (1) subjectid, tigan
FROM 题干
ORDER BY NEWID()) AS T INNER JOIN
选项 AS X ON T.subjectid = X .subjectid
ORDER BY T.subjectid , X .id2,X.optionid -- set @t = (select count(*) from #itmp)
set @total = @total + @@rowcount-- if @total > 80
-- begin
-- set @total = @total - @t
-- end if @total <= 80
-- begin
insert into #result select * from #itmp
-- end
else
set @total = @total - @t DROP table #itmp
END
select * from #resultEND
解决方案 »
- 再再求个语句,谁告诉我下这类方法的原理,谢谢
- SQL问题。。。
- 请问如何处理公司内部用户与外部用户?
- 为什么这样写只能建立出一个叫做t的数据库
- 数据库表满了后的维护
- 在项目中频繁地使用 UPDATE 语句
- 不好意思,又是触发器问题。欢迎各位进入。
- 在数据库'kkk888'中拒绝了setuser权限
- sql server2005, 作表更改等操作时出现".net framework data provider is not found..."字样的错误提示
- #####请教高手:时间戳的值如何产生?#####
- 求助:如何把一个表中的一行数据复制到另一个表中
- SQL2005 中 列名中有特殊字符的问题 只要回答有用 均有分 不够再加
就是第二个if必须和你一样
if @total <= 80
否则最后一题插不进去