sql-server - 多表join - 左连接查询和右连接查询的区别
SQL Server表:@,#和##有什么区别? (4)
在SQL Server中,@ table,#表和##表有什么区别?
#
和##
表是在临时数据库中表示的实际表。 这些表可以包含索引和统计信息,并且可以在会话中跨sprocs进行访问(对于全局临时表,它可以跨会话使用)。
@table是一个表变量。
更多信息,请访问: http://www.sqlteam.com/article/temporary-tables : http://www.sqlteam.com/article/temporary-tables
#table
指的是一个本地(仅对创建它的用户可见)临时表。
##table
指向全局(对所有用户都可见)临时表。
@variableName
指的是一个变量,它可以根据类型保存值。
干杯
我将重点讨论#table和@table之间的差异。 ## table是一个全局临时表,对于超过10年使用SQL Server的记录,我还没有遇到有效的用例。 我敢肯定,一些存在,但对象的性质使其非常不可用恕我直言。
@marc_s对@whiner的回应是绝对正确的:表变量总是存在于内存中是一种流行的神话。 实际上,表变量通常用于转到磁盘并像临时表一样操作。
无论如何,我建议按照@Astander指出的链接阅读一组差异。 大多数差异都会限制您无法对@table变量进行的操作。