所以这是一个学校作业。我不明白为什么我的 SQL 查询返回它的数字。我创建了 8 个表。主要感兴趣的是学生
CREATE TABLE Student
(
Number INT NOT NULL IDENTITY(130001, 1),
Name CHAR(55) NOT NULL,
PRIMARY KEY (Number)
)
我在其中插入了 36 个名字(因为这就是我们有多少学生)。但是当我运行查询时
SELECT COUNT(Student.Name) AS 'Total number of students'
FROM Student
它返回 144。我想说它与这里给定的代码有关。
DECLARE @totalProgram INT
DECLARE @totalStudent INT
DECLARE @i INT
SET @totalProgram = (SELECT COUNT(*) FROM Program)
SET @totalStudent = (SELECT COUNT(*) FROM Student)
SET @i = 1
WHILE @i <= @totalStudent
BEGIN
INSERT INTO ProgramGraduate
(
ProgramID,
StudentNumber
)
VALUES
(
FLOOR(RAND() * @totalProgram + 1),
FLOOR(RAND() * @totalStudent + 130001)
)
SET @i = @i + 1
END
GO
我认为它的目的是随机化程序中的学生总数?我知道前 6 行是声明一个变量并为变量提供值,但是当 WHILE 循环开始时,我感到困惑。如果您想帮助我剖析并了解代码中发生了什么,我将不胜感激。谢谢!
汉娜