當前位置:首頁 » 編程語言 » sqlserver嵌套事務
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver嵌套事務

發布時間: 2023-01-01 11:53:07

A. 主流資料庫的命令有什麼區別

我先拋磚引玉:

1. 開發性: sqlSERVER不能,ORACLE能裝在UNIX上
2. 分區表: SQLSERVER不能,ORACLE能根據INDEX的值的范圍,把數據存放到
不同的硬碟空間.
3. AUTONOMOUS_TRANSACTION;SQLSERVER不能,ORACLE能在主TRANSACTION中獨立
COMMIT或ROLLBACK子TRANSACTION而不影響主TRANSACTION.

請繼續,高分伺候
---------------------------------------------------------------

4.Oracle可以利用回滾表空間查詢以前(如1小時前)的信息,SQLServer不能
5.Oracle可以進行用戶資源管理(CPU使用率等),SQLServer不能
6.Oracle支持Label Security,SQLServer不能

---------------------------------------------------------------

支持一下,來帖一段

開放性:
SQL Server
只能在windows 上運行,沒有絲毫的開放性,操作系統的系統的穩定對資料庫是十分重要的。Windows9X系列產品是偏重於桌面應用,NT server只適合中小型企業。而且windows平台的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經考驗,尤其是在處理大數據量的關鍵業務時.

Oracle
能在所有主流平台上運行(包括 windows)。完全支持所有的工業標准。採用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支持。

可伸縮性,並行性
SQL server
DB2
並行實施和共存模型並不成熟。很難處理日益增多的用戶數和數據卷。伸縮性有限。

Oracle
平行伺服器通過使一組結點共享同一簇中的工作來擴展windownt的能力,提供高可用性和高伸縮性的簇的解決方案。
如果windowsNT不能滿足需要, 用戶可以把資料庫移到UNIX中。

安全性
SQL server
沒有獲得任何安全證書。

Oracle Server
獲得最高認證級別的ISO標准認證。

性能
SQL Server
多用戶時性能不佳

Oracle
性能最高, 保持windowsNT下的TPC-D和TPC-C的世界記錄。

客戶端支持及應用模式
SQL Server
C/S結構,只支持windows客戶,可以用ADO,DAO,OLEDB,ODBC連接.

Oracle
多層次網路計算,支持多種工業標准,可以用ODBC,JDBC,OCI等網路客戶連接

操作簡便
SQL Server
操作簡單,但只有圖形界面.

Oracle
較復雜, 同時提供GUI和命令行,在windowsNT和unix下操作相同

使用風險
SQL server
完全重寫的代碼,經歷了長期的測試,不斷延遲,許多功能需要時間來證明。並不十分兼容早期產品。使用需要冒一定風險。

Oracle
長時間的開發經驗,完全向下兼容。得到廣泛的應用。完全沒有風險。

---------------------------------------------------------------

Oracle可以建立點陣圖索引,SQLServer不能。
Oracle可以建立函數索引,SQLServer不能。
SQLServer不支持前觸發器,所有都是後觸發器。

關於Oracle分區表,SQLServer 2000可以使用分區視圖,原理也是一樣,把不同物理空間的表聯系在一起。
SQLServer能支持嵌套事務,事務上加上名字就好,就是說能在主事務中操作子事務。
---------------------------------------------------------------

oracle:
length() lengthb()
sqlserver:
datalength()
---------------------------------------------------------------

不了解sql server
---------------------------------------------------------------

似乎SQLServer只是表級觸發器,不支持行級觸發器
---------------------------------------------------------------

SQL好象也有命令行的。SQL也支持JDBC的。

ORACLE備份方式比較多,有STANDBY、RMAN、IMP等,SQL就比較簡單了。
ORACLE可是實現多個日誌文件的鏡象,而SQL只有一個日誌文件。
ORACLE有很少但很多數量的歸檔日誌,而SQL只有一個日誌文件,經常會增加到很大。
ORACLE的BLOCK SIZE可以根據OLTP或者DSS不同的應用自己設置,而SQL只能為8K。
ORACLE的內存是在資料庫啟動時就由參數文件決定了的,而SQL可以根據應用自動改變。

---------------------------------------------------------------

ORACLE有專門實現樹形查詢的語法,而SQL沒有。
---------------------------------------------------------------

ORACLE可以修改字元集
SQLSERVER不能,必須重新安裝

---------------------------------------------------------------

ORACLE可以安裝各種平台
SQLSERVER不行

---------------------------------------------------------------

ORACLE可以賣的很貴卻還有人買
SQLSERVER不行

---------------------------------------------------------------

也不太了解sqlserver。
它有Orcle中的分析函數和鎖嗎?

---------------------------------------------------------------

TO:ccbzzp(ccbzzp)
ORACLE可以修改字元集
SQLSERVER不能,必須重新安裝

有問題,在SQL SERVER6.5是不可以的,在SQLSERVER2000已經完全可以
EXAMPLE:ALTER DATABSE DB_NAME COLLATE CHINESE_PRC_CI_AS
---------------------------------------------------------------

TO:OldMan0516(凡人0516)
MSSQL SERVER2000是完全可以行觸發的!!!

如果大家有和問題可以到SQLSERVER板塊去看看:-)
---------------------------------------------------------------

跟本不是一個量級上的東西,沒什麼可比性。
sql server也沒說要和oracle比呀,人家在windowns平台自我完善呢。
---------------------------------------------------------------

---------------------------------------------------------------

ORACLE可以修改字元集
SQLSERVER不能,必須重新安裝更改排序規則。

-------------------------------------
alter database 資料庫 collate 排序規格

其中,某些排序規則指定CI 不區分大小寫,CS 指定區分大小寫。

如:alter database 資料庫 COLLATE Chinese_PRC_CI_AS
不區分大小寫,而
alter database 資料庫 COLLATE Chinese_PRC_CS_AS
使之區分大小寫。

使用如下命令,可以獲得更多的規則:
SELECT *
FROM ::fn_helpcollations()

---------------------------------------------------------------

oracle可以有java過程sqlserver沒有,而sqlserver可以用dll。
oracle9i有分析函數,sqlserver沒有
oracle有rownum等偽列,sqlserver沒有
sqlserver有full join,oracle9i才有

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vaela

B. sql的事務問題

如果沒有猜錯,樓主應該是在執行COMMIT TRANSACTION tran3 後,直接在當前的查詢界面查看的表裡的數據吧?對於當前會話,即使你沒有執行COMMIT,所有數據都會在當前的會話里發生變化,你可以不執行COMMIT TRANSACTION tran3,直接查看錶里的數據,你會看到即使沒有提交任何事物,表裡的數據還是發生變化了。如果你再打開一個查詢窗口,你會發現直接從testtran 表裡select數據是會一直等待的,因為其它會話(也就是開始你執行begin tran那個會話)有事務沒有提交,表是鎖定的。事務是用來保證多個會話之間不會應為事務不一致而產生臟數據。對同一會話,是看不出效果的。

C. sqlserver 事務 超時 會自動結束嗎

當 SET XACT_ABORT 為 ON 時,如果執行 Transact-SQL 語句產生運行時錯誤,則整個事務將終止並回滾。

當 SET XACT_ABORT 為 OFF 時,有時只回滾產生錯誤的 Transact-SQL 語句,而事務將繼續進行處理。如果錯誤很嚴重,那麼即使 SET XACT_ABORT 為 OFF,也可能回滾整個事務。OFF 是默認設置。

編譯錯誤(如語法錯誤)不受 SET XACT_ABORT 的影響。

對於大多數 OLE DB 提供程序(包括 SQL Server),必須將隱式或顯示事務中的數據修改語句中的 XACT_ABORT 設置為 ON。唯一不需要該選項的情況是在提供程序支持嵌套事務時。有關詳細信息,請參閱 分布式查詢和分布式事務。

SET XACT_ABORT 的設置是在執行或運行時設置,而不是在分析時設置。

D. 在 sqlserver 資料庫中 N多表連查時 能不能嵌套 怎麼嵌套

select 的命令比較多了,常用的是select 表的列名 from 表名/視圖 [where 條件 group by 欄位 order by 表的列名 asc/desc],當然也可以實現多表關聯,select * from a,b where a.列名=b.列名 ;

當然select 可以嵌套,但必須資料庫支持,sqlserver2000,oracle和mysql5.0以上都支持了,如 select * from (select * from 表名)a ,select的嵌套是比較復雜,可以實現n重嵌套的。

select 還有特殊的用法就是select * into 表名 select * from 表名
即為表的復制,好像sqlserver支持這個的。
子查詢比較復雜,你可以看看一些參考書
知道的就這么多了,應該還有其他的了。

E. SqlServer嵌套查詢

select * from a where goodsid in (select b.goodsid from b ) and goodsid in (select c.goodsid from c)

或者

select * from a,b,c where a.goodsid=b.goodsid and a.goodsid=c.goodsid;

*號可以寫為a.*,b.*,c.*