SQL临时表操作

教学教程语法
创建临时表
方法一:
create table #临时表名
(
字段1 约束条件,
字段2 约束条件,
...)

create table ##临时表名
(
字段1 约束条件,
字段2 约束条件,
...)

方法二:
select * into #临时表名 from 你的表;
select * into ##临时表名 from 你的表;

注:以上的#代表局部临时表,##代表全局临时表

查询临时表
select * from #临时表名;
select * from ##临时表名;

删除临时表
drop table #临时表名;
drop table ##临时表名;

实战
*

DECLARE @tmpTableName NVARCHAR(200) = N'#tmpUser'
DECLARE @count INT = 0;
DECLARE @incr INT = 1;
DECLARE @userName NVARCHAR(100);
 
--判断临时表是否存在
IF OBJECT_ID('tempdb..' + @tmpTableName) IS NOT NULL
BEGIN
    PRINT('删除临时表')
    DROP TABLE #tmpUser;
END
 
IF EXISTS (SELECT 1 FROM tempdb.sys.tables WHERE name = @tmpTableName)
BEGIN
    PRINT('删除临时表')
    DROP TABLE #tmpUser;
END
ELSE
BEGIN
    PRINT(@tmpTableName + ' 不存在')
END
 
--判断临时表是否存在
IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE id = OBJECT_ID(CONCAT('tempdb..', @tmpTableName)) AND type = 'U')  
BEGIN  
    PRINT(@tmpTableName + ' 已存在')
	DROP TABLE #tmpUser
END  
ELSE  
BEGIN  
    PRINT(@tmpTableName + ' 不存在')
END
 
--创建临时表
CREATE TABLE #tmpUser
(
Id INT IDENTITY(1,1) NOT NULL, 
UserId INT NOT NULL,
UserName NVARCHAR(100) NOT NULL,
Sort INT NOT NULL,
CreatedTime DATETIME NOT NULL
)
 
--插入数据
INSERT INTO #tmpUser(UserId,UserName,Sort,CreatedTime)
SELECT m.Id,m.Category,2,GETDATE() FROM dbo.sys_medicine m ORDER BY Id
SELECT @count = @@ROWCOUNT;
PRINT('Ln 48 ' +  CONVERT(NVARCHAR(10),@count))

INSERT INTO #tmpUser(UserId,UserName,Sort,CreatedTime) VALUES(1,'张三',1,GETDATE())
INSERT INTO #tmpUser(UserId,UserName,Sort,CreatedTime) VALUES(2,'李四',2,GETDATE())

--查询总数
SELECT @count = COUNT(*) FROM #tmpUser

--查询临时表【会影响下边的信息打印】
--SELECT * FROM #tmpUser


PRINT('Ln 60 ' +  CONVERT(NVARCHAR(10),@count))

WHILE @incr <= @count
BEGIN
    SELECT @userName = UserName FROM #tmpUser WHERE id = @incr;
	PRINT(CONCAT('第',CONVERT(NVARCHAR(10),@incr),'条数据,','UserName=',@userName));
    SET @incr = @incr + 1;
END

*
*
*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值