SQL 临时表的使用与优化
1. 全局临时表概述
全局临时表可被任何人访问,无需授予或拒绝权限。即便在 tempdb 中执行 DENY 语句,所有用户仍可访问。以下是创建全局临时表的示例代码:
CREATE TABLE ##CustomerSales
(
CustomerID char (6) NOT NULL,
Year smallint NOT NULL,
Sales money NOT NULL
)
全局临时表的生命周期与局部临时表有所不同。当创建它的会话结束,且所有引用它的其他进程停止引用时,全局临时表会自动删除。也就是说,即使创建表的进程结束,但如果还有其他进程在使用该表,它仍然会存在。创建全局临时表后,在 tempdb 中运行系统存储过程 sp_help,会看到表名出现在列表中,且无系统生成的后缀。
2. 临时表的使用限制
- 外键约束 :与永久表不同,临时表不能有外键。若尝试创建带有 FOREIGN KEY 约束的临时表,语句会执行并创建表,但外键不会创建,且会收到警告信息。
- 用户定义函数(UDFs) :UDFs 不能访问临时表。若尝试在函数内创建临时表,CREATE FUNCTION 语句将失败。不过,UDFs 中允许使用表变量。
- 表变量的限制 :
- 表变量创建后不能更改表结构,包括添加或删除列、约束,也不
超级会员免费看
订阅专栏 解锁全文
2379

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



