可以使用如下方法:
declare @sql varchar(2000)begin
set @sql='select * into #tmp from student'
print @sql
exec (@sql)
其中#tmp就是临时表,整段代码的意思就是将student表的数据全部插入到#tmp这个临时表中。
你试过了吗?这样建是允许的!!不过这样建的表属于本地临时表。当存储过程完成时,将自动删除在存储过程中创建的本地临时表。
可能是被删了你没看到
--------
CREATE
PROCEDURE
dbo.Test2
AS
CREATE
TABLE
#t(x
INT
PRIMARY
KEY)
INSERT
INTO
#t
VALUES
(2)
SELECT
Test2Col
=
x
FROM
#t
GO
CREATE
PROCEDURE
dbo.Test1
AS
CREATE
TABLE
#t(x
INT
PRIMARY
KEY)
INSERT
INTO
#t
VALUES
(1)
SELECT
Test1Col
=
x
FROM
#t
EXEC
Test2
GO
CREATE
TABLE
#t(x
INT
PRIMARY
KEY)
INSERT
INTO
#t
VALUES
(99)
GO
EXEC
Test1
GO
这是个例子你可以运行了看看结果!!
create table tmp_临时表 as select * from 表名 // 这边是创建临时表再将数据添加到临时表insert into tmp_临时表 select * from 表名 // 和上面的一样,但是这个是临时表已经存在新增数据
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)