一个关于考试系统随机出题的实现方法

时间:2021-11-08 19:47:17
我想写一个存储过程,比如参数为返回的随机题数量。请问怎样实现

5 个解决方案

#1


怎么做呢?谢谢

#2


set rowcount @Qty  --题目数量
select * from tablename order by newid()
set rowcount 0

#3


NEWID
创建 uniqueidentifier 类型的唯一值。 

语法
NEWID ( )

#4


NEWID
创建 uniqueidentifier 类型的唯一值。 

语法
NEWID ( )

返回类型
uniqueidentifier

示例
A.对变量使用 NEWID 函数
下面的示例使用 NEWID 对声明为 uniqueidentifier 数据类型的变量赋值。在测试该值前,将先打印 uniqueidentifier 数据类型变量的值。

-- Creating a local variable with DECLARE/SET syntax.
DECLARE @myid uniqueidentifier
SET @myid = NEWID()
PRINT 'Value of @myid is: '+ CONVERT(varchar(255), @myid)

下面是结果集:

Value of @myid is: 6F9619FF-8B86-D011-B42D-00C04FC964FF



说明  对于每台计算机,由 NEWID 返回的值不同。所显示的数字仅起解释说明的作用。

#5


--newid()是SQL中实现随机取数的关键.

--下面是返回指定数目随机题的存储过程示例:
create proc p_qry
@num int   --要返回的题目数量
as
declare @s varchar(20)
set @s=cast(@num as varchar(20))
exec('select top '+@s+' * from 题库')
go

--或:
create proc p_qry
@num int   --要返回的题目数量
as
set rowcount @num
select * from 题库
go

#1


怎么做呢?谢谢

#2


set rowcount @Qty  --题目数量
select * from tablename order by newid()
set rowcount 0

#3


NEWID
创建 uniqueidentifier 类型的唯一值。 

语法
NEWID ( )

#4


NEWID
创建 uniqueidentifier 类型的唯一值。 

语法
NEWID ( )

返回类型
uniqueidentifier

示例
A.对变量使用 NEWID 函数
下面的示例使用 NEWID 对声明为 uniqueidentifier 数据类型的变量赋值。在测试该值前,将先打印 uniqueidentifier 数据类型变量的值。

-- Creating a local variable with DECLARE/SET syntax.
DECLARE @myid uniqueidentifier
SET @myid = NEWID()
PRINT 'Value of @myid is: '+ CONVERT(varchar(255), @myid)

下面是结果集:

Value of @myid is: 6F9619FF-8B86-D011-B42D-00C04FC964FF



说明  对于每台计算机,由 NEWID 返回的值不同。所显示的数字仅起解释说明的作用。

#5


--newid()是SQL中实现随机取数的关键.

--下面是返回指定数目随机题的存储过程示例:
create proc p_qry
@num int   --要返回的题目数量
as
declare @s varchar(20)
set @s=cast(@num as varchar(20))
exec('select top '+@s+' * from 题库')
go

--或:
create proc p_qry
@num int   --要返回的题目数量
as
set rowcount @num
select * from 题库
go

相关文章