创建本地表和全局表

Posted WhiteSpace

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建本地表和全局表相关的知识,希望对你有一定的参考价值。

临时表有两种类型:本地表和全局表。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号(#)打头;它们仅对当前的用户连接可见的;当用户从Sql Server实例断开连接时被删除。全局临时表的名称以两个数字符号(##)打头,创建后对任何用户都是可见的,当所有引用该表的用户与服务器断开连接时被删除。

例如,创建temp表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表。除非已将其删除。如果数据库回话创建了本地临时表#temp,则仅回话可以使用该表,会话断开连接后将该表删除,如果创建了全局临时表##temp,则数据库中的任何用户均可使用该表,如果该表在创佳后没有其他用户使用,则当断开连接时该表删除。如果用户创建该表后另一个用户在使用该表,则数据库引擎将在用户断开连接并且所有其他会话不在使用该表时将其删除。

例如,下面语句创建了一个临时表,并向其中插入数据。

Create Table #Mytable (ID int primary key)

insert into #Mytable vlaues (1)

当创建本地或全局临时表,Create Table 语法支持除 foreign key 约束外的其他所有约束定义,如果临时表中指定了 Foreign Key 约束,则该语句将返回一条表名已跳过此约束的警告消息。此表仍将创建,但不适用Foreign Key约束

以上是关于创建本地表和全局表的主要内容,如果未能解决你的问题,请参考以下文章

sql server中的用户临时表和全局临时表的区别

全局(Global) 与本地(Local)索引的区别

SQL SERVER 临时表能使用EXEC SP_spaceused 查询表大小么

本地化表和实体框架

Clickhouse 外部表本地表副本表和分布式表

数据库——创建局部临时表和全局临时表