前兩天在寫儲存過程的時候遇到編號 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,表變數定義包括列定義,列名,資料型別和約束 可用的約束...