Sqlserver用存储过程创建临时表

粘贴一篇自己用的比较少的内容–临时表,第一次使用,小编没什么想解释的,先做个记录

Create Procedure [dbo].[Authority_Admin]
as 
begin
--初始化浏览记录
create table #Tmp --创建临时表#Tmp
(
    ID   int IDENTITY (1,1)     not null, --创建列ID,并且每次新增一条记录就会加1
    cid          int,
	cname        varchar (200),
	username     NVARCHAR(MAX)
    primary key (ID)      --定义ID为临时表#Tmp的主键      
);
insert into #Tmp(cid,cname)
select a.Content_topic_id, b.Content_topic_name + '-' +  a.Content_topic_name  from Ewk_Content_Topic a 
inner join Ewk_Content_Topic b on a.Content_topic_uid = b.Content_topic_id
where a.Content_topic_uid in (750,784,766,986,993,1028,786) order by a.Content_topic_uid asc

Declare @cid int --栏目ID
Declare @username NVARCHAR(MAX)
Declare @Str NVARCHAR(MAX) --用来存放查询语句
Declare @Count int --求出总记录数      
Declare @i int
Set @i = 0 
Select @Count = Count(1) from #Tmp
While @i < @Count 
    Begin	
	   if @i > 0
	   begin
			  select @cid = cid from #Tmp where id = @i

			   SELECT @username = STUFF((SELECT ','+ RealName+'('+Permission+')' FROM Authority a  
			   inner join EwkCms_Admin as b on a.User_id=b.Id 
			   WHERE a.Content_topic_id=@cid
				for xml path('') ),1,1,'') 	  

			  update #Tmp set username = @username where id = @i
	   end
     
      
       Set @i = @i + 1
    End
	select * from #Tmp
drop table #Tmp


end
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在SQL Server中,可以使用以下两种方法创建临时表: 方法一:使用CREATE TABLE语句创建临时表。可以创建局部临时表和全局临时表。局部临时表以#开头,全局临时表以##开头。语法如下: ``` CREATE TABLE #临时表名 (字段1 约束条件, 字段2 约束条件, ...) CREATE TABLE ##临时表名 (字段1 约束条件, 字段2 约束条件, ...) ``` 例如: ``` CREATE TABLE #Tmp (ID int IDENTITY (1,1) not null, WokNo varchar(50), primary key (ID)) ``` 方法二:使用SELECT INTO语句从现有表中创建临时表。语法如下: ``` SELECT * INTO #临时表名 FROM 你的表 SELECT * INTO ##临时表名 FROM 你的表 ``` 例如: ``` SELECT * INTO #jimmy FROM table WHERE 1=1 ``` 需要注意的是,创建临时表时,临时表的定义和数据都存储在tempdb数据库中。临时表在会话结束或者显式删除时会自动删除。可以使用DROP TABLE语句删除临时表,语法如下: ``` DROP TABLE #临时表名 DROP TABLE ##临时表名 ``` 例如: ``` DROP TABLE #Tmp ``` 希望以上信息对您有帮助。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [Tempdb数据库详细介绍](https://blog.csdn.net/amq48426/article/details/101986682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Sql Server 创建临时表](https://blog.csdn.net/stupid_leilei/article/details/123686977)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值