在SQL Server 2005中,我们可以通过以下两种方式之一创建临时表:
declare @tmp table (Col1 int, Col2 int);
Run Code Online (Sandbox Code Playgroud)
要么
create table #tmp (Col1 int, Col2 int);
Run Code Online (Sandbox Code Playgroud)
这两者有什么不同?关于@tmp是否仍然使用tempdb,或者是否所有内容都发生在内存中,我已经阅读了相互矛盾的意见.
在哪种情况下,一个人胜过另一个?
我需要将给定的T-SQL语句翻译成另一种语言.这些T-SQL语句正在使用DECLARE TABLE
.DECLARE TABLE
和之间有什么区别CREATE TABLE
?
例如,以下两行之间有什么区别?
declare @t table (account_id varchar(512), num_events int);
Run Code Online (Sandbox Code Playgroud)
Create table t {account_id varchar(512), num_events int}
Run Code Online (Sandbox Code Playgroud)