我們在資料庫中使用Table的時候,經常會遇到兩種使用Table的方法,分別就是使用臨時Table及Table變數。在實際使用的時候,我們如何靈活的在儲存過程中運用它們,雖然它們實現的功能基本上是一樣的,可如何在一個儲存過程中有時候去使用臨時Table而不使用Table變數,有時候去使用Table變數而不使用臨時Table呢?
臨時Table
我們在資料庫中使用Table的時候,經常會遇到兩種使用Table的方法,分別就是使用臨時Table及Table變數。在實際使用的時候,我們如何靈活的在儲存過程中運用它們,雖然它們實現的功能基本上是一樣的,可如何在一個儲存過程中有時候去使用臨時Table而不使用Table變數,有時候去使用Table變數而不使用臨時Table呢?
臨時Table
1.部署CLR時, 若該CLR有使用到外部命令時(例如:讀取檔案, 或讀取主機效能等), 切記要執行以下指令方可部署成功
ALTER DATABASE 資料庫名稱 SET TRUSTWORTHY ON
SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
用過Oracle的人一定都知道,Oracle有一個好用的函式叫做RowID,可把所有的資料都編上一流水號
可應用於該Table中無UniqueKey時,方便查詢或刪除或修改資料之用
一般在資料搬移維護時,若該Table的PKey欄位已設定為Identity時
只能先將該Pkey欄位的Identity移除後,再將資料覆製至該Table中
在撰寫一支加了Transaction的T-SQL時,突然發現Transaction失效,且交易失敗時,竟沒有RollBack
虛擬碼如下