教学教程语法
创建临时表
方法一:
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
*
*
*
340

被折叠的 条评论
为什么被折叠?



