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