我正在使用Oracle 11g全局臨時表,因爲我需要一個解決方案,我可以將行添加到臨時表以進行連接,並且我只希望將行添加到臨時表中包括Oracle Connection/session。我在Oracle中使用全局臨時表,因爲我希望表存在於會話之間,所以每次創建查詢時都不必重新創建表。這工作很好。全球臨時表 - SQL Server與Oracle
的My Oracle表的定義如下:
CREATE GLOBAL TEMPORARY TABLE book_id_temp
(
book_id RAW(32)
)ON COMMIT DELETE ROWS;
我有相同的數據庫結構也在SQL Server 2008 R2側,並需要在SQL Server中的一個類似的解決方案。我想:
- 打開SQL連接(ADO.NET)
- 中的事務:
- - 添加行臨時表。
- - 在另一個表上加入它們,選擇結果
- - 只有在此會話期間添加的行纔會包含在聯接中。另一個線程可能在同一個臨時表上執行。那麼當地的臨時表可能是最好的嗎?
- 回滾整個交易。
從我讀過的SQL Server中的全局臨時表中,這些表在連接結束後存在,就像常規表一樣,並且像Oracle中的全局臨時表一樣。但是,數據的範圍並不明確。只有創建行的SQL Server會話才能訪問它,就像在Oracle中一樣? SQL Server全局臨時表的數據可訪問性是什麼?你有一個替代方案來達到我的目標嗎?
Oracle全局臨時表也需要截斷,取決於操作...我會使用SQL Server中臨時表的一個表變量給定的選擇,但你需要解釋您在連接丟失時獲得持久性的需求以獲得真正的幫助。爲什麼不製作一個真正的桌子? – 2012-01-18 15:38:35
我希望表格在會話之間存在,所以每次創建查詢時都不必重新創建表格。 – 2012-01-18 15:41:10
它*聽起來像是你想要一個本地臨時表,而不是全局臨時表。你能描述一下你所需要的語義嗎? – 2012-01-18 15:46:27