臨時表和表變數定序問題引起

2022-02-28 12:08:33 字數 703 閱讀 9322

前兩天在寫儲存過程的時候遇到編號 468 的錯誤,看一下,是定序錯誤,因為是用的臨時表,所以檢視了下tempdb的定序,發現兩個資料庫定序不一致,

原本想把定序改為一致,執行t-sql修改了定序,結果是資料庫和table的定序改了,但列的定序還是原來的【無力吐槽】。後想了些辦法來修改資料庫定序,

因為時間關係,放棄了。修改了了臨時表中的定序,執行後還是出現問題,晚上同事幫忙改了一下,可以執行了。回頭看了下,解決辦法是將其中乙個臨時表

改成了表變數,

看了下**,發現只修改了乙個臨時表的定序【二個臨時表】,造成問題只解決一半,由於表變數也解決了問題,

表變數與臨時表的優缺點:

**:什麼情況下使用表變數?什麼情況下使用臨時表?

表變數:  

declare @tb  table(id   int   identity(1,1), name   varchar(100))   

insert @tb  

select id, name 

from mytable 

where name like 『zhang%』 

臨時表: 

select name, address

into #ta   from mytable  

where name like 『zhang%』

表變數和臨時表的比較:

SQL 表變數和臨時表

sql 表變數和臨時表 表變數 儲存在記憶體中,作用域是指令碼的執行過程中,指令碼執行完畢之後就會釋放記憶體,適合短時間內儲存資料量小的資料集。優點 使用靈活,使用完之後立即釋放,不占用物理儲存空間 缺點 只適合較小資料量的暫時儲存,不能建索引,資料量稍大時查詢效率慢,佔記憶體 使用臨時表和表變數的...

SQL臨時表和表變數

表變數 儲存在記憶體中,作用域是指令碼的執行過程中,指令碼執行完畢之後就會釋放記憶體,適合短時間內儲存資料量小的資料集。優點 使用靈活,使用完之後立即釋放,不占用物理儲存空間 缺點 只適合較小資料量的暫時儲存,不能建索引 資料量稍大時查詢效率慢,佔記憶體 使用臨時表和表變數的資料量大小沒有具體的臨界...

mysql表變數臨時表 表變數和臨時表詳解

首先讓我們來看看什麼是表變數和臨時表。sql server 表變數 1.初識表變數 表變數在sql server 2000中首次被引用。表變數的定義和建立乙個表大致相同,只不過是使用declare variable而不是create table,表變數定義包括列定義,列名,資料型別和約束 可用的約束...