0

我正在尝试学习如何遍历表变量并将这些值插入到临时表中,但它会抛出一个错误,即已经存在一个名为的对象,即使我删除了临时表(如果存在)。

Create TABLE Dept(
  id int NOT NULL,
  name VARCHAR(13)
);
  
Create TABLE Student(
   id int NOT NULL,
   Fname VARCHAR(25),
   Lname VARCHAR(25)
;
  
Insert INTO Dept(id,name)
values(10,'IT'),
(20,'Admin');

Insert INTO Student(id,Fname,Lname)
values(001,'Jack','P'),
(001,'Jack','P');

DECLARE @LOOP INT
DECLARE @COUNTOFRECORDS INT
DECLARE @x TABLE(
r_no int not null primary key identity(1,1)
name VARCHAR(20))

Insert into @x select name from dept
IF OBJECT_ID(N'tempdb..#tempstudent') IS NOT NULL
BEGIN
    DROP TABLE #tempstudent
END
SELECT @LOOP = 1
SELECT @COUNTOFRECORDS = COUNT(r_no) from @x
while(@LOOP <= @COUNTOFRECORDS)
BEGIN
    SELECT s.fname,s.lname INTO #tempstudent from Student s
    select @LOOP=@LOOP + 1
END

为什么它仍然抛出一个消息,已经有一个名为#tempstudent的对象。我也尝试使用全局临时表。附加小提琴http://sqlfiddle.com/#!7/b920e/1

4

0 回答 0