#
在 SQL server 中创建临时表之前是否需要使用?
例子:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
对于 ItemBack1 是否需要使用#
符号?
如果不是,那么#
创建临时表有什么用?
#
在 SQL server 中创建临时表之前是否需要使用?
例子:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
对于 ItemBack1 是否需要使用#
符号?
如果不是,那么#
创建临时表有什么用?
是的。您需要在表名前加上“#”(哈希)来创建临时表。
如果您以后不需要该表,请继续创建它。临时表与普通表非常相似。但是,它是在 tempdb 中创建的。此外,它只能通过当前会话访问,即对于 EG:如果另一个用户尝试访问您创建的临时表,他将无法访问。
“##”(双哈希创建“全局”临时表,其他会话也可以访问。
请参阅以下链接了解临时表的基础知识:http: //www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
如果表的内容少于 5000 行且不包含 nvarchar(MAX)、varbinary(MAX) 等数据类型,请考虑使用表变量。
它们是最快的,因为它们就像存储在 RAM 中的任何其他变量一样。 它们也存储在 tempdb 中,而不是 RAM 中。
DECLARE @ItemBack1 TABLE
(
column1 int,
column2 int,
someInt int,
someVarChar nvarchar(50)
);
INSERT INTO @ItemBack1
SELECT column1,
column2,
someInt,
someVarChar
FROM table2
WHERE table2.ID = 7;
有关表变量的更多信息:http: //odetocode.com/articles/365.aspx
这两个表之间的区别在于ItemBack1
,#ItemBack1
第一个是持久的(永久的),而另一个是临时的。
现在如果再看看你的问题
在sql server中创建临时表是否需要使用#?
答案是Yes,因为没有这个前面#
的表将不是一个临时表,它将独立于所有会话和范围。