SQL Server 表变量与临时表

临时表

它存储在Tempdb中,显示删除(DROP)或连接断开时数据才会被删除。

  • 本地临时表:以#为前缀,只对本地当前的用户连接可见,连接断开时被删除。
  • 全局临时表:以##为前缀,对所有用户可见,当所有引用该表的用户断开连接时被删除。

表变量

表变量在批处理结束后自动被删除

  • 本地表变量:以@为前缀
  • 全局表变量:以@@为前缀,一般都是系统的全局变量,如:@@Error、@@RowCount

表变量和临时表的区别

  1. 表变量是存储在内存中,不产生日志
  2. 表变量不允许有非聚集索引
  3. 表变量是不允许有默认值,也不允许有约束
  4. 临时表中是有锁的机制,表变量没有
posted @ 2022-06-28 00:02  weidadong  阅读(59)  评论(0编辑  收藏  举报