整理转贴
一、事务的属性
事务具有acid属性:即 atomic原子性, consistent一致性, isolated隔离性, durable永久性
原子性:事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全回滚,全部不保留
一致性:事务完成或者撤销后,都应该处于一致的状态
隔离性:多个事务同时进行,它们之间应该互不干扰.应该防止一个事务处理其他事务也要修改的数据时,不合理的存取和不完整的读取数据
永久性:事务提交以后,所做的工作就被永久的保存下来
二、事务并发处理会产生的问题
丢失更新:当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题、每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。
脏读:当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题。 第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。
不可重复读:当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题。不一致的分析与未确认的相关性类似,因为其它事务也是正在更改第二个事务正在读取的数据。 ......
添加字段:
MYSQL
alter table tb add col2 varchar(10)
MSSQL2000
alter table tb add col2 varchar(10)
修改字段:
MYSQL
alter table tb modify col2 varchar(20)
MSSQL2000
alter table tb alter column col2 varchar(20)
删除字段:
MYSQL
alter table tb drop column col2
MSSQL2000
alter table tb drop column col2 ......
添加字段:
MYSQL
alter table tb add col2 varchar(10)
MSSQL2000
alter table tb add col2 varchar(10)
修改字段:
MYSQL
alter table tb modify col2 varchar(20)
MSSQL2000
alter table tb alter column col2 varchar(20)
删除字段:
MYSQL
alter table tb drop column col2
MSSQL2000
alter table tb drop column col2 ......
--> Title : 自增列重複與不連續
--> Author : wufeng4552
--> Date : 2009-11-13 08:31:12
--自增列通常在以下幾種情況而導致不連續
if object_id('tb')is not null drop table tb
go
create table tb(ID int identity(0,1),name varchar(10)unique)
--1插入失敗自動回滾
insert tb([name]) select 'A'
insert tb([name]) select 'A'
/*
錯誤原因
訊息2627,層級14,狀態1,行4
違反UNIQUE KEY 條件約束'UQ__tb__6B79F03D'。無法在物件'dbo.tb' 中插入重複的索引鍵。
陳述式已經結束。
*/
insert tb([name]) select 'B'
select * from tb
-->查詢結果
/*
(1 個資料列受到影響)
ID name
----------- ----------
0 A
2 &nbs ......
use master
go
sp_dropextendedproc xp_cmdshell
go
sp_dropextendedproc xp_regaddmultistring
go
sp_dropextendedproc xp_regdeletekey
go
sp_dropextendedproc xp_regdeletevalue
go
sp_dropextendedproc xp_regenumvalues
go
sp_dropextendedproc xp_regread
go
sp_dropextendedproc xp_regwrite
go
sp_dropextendedproc xp_regremovemultistring
go ......
create proc [dbo].[sp_lockinfo]
@kill_lock_spid bit=0, --是否杀掉阻塞的进程,1 杀掉, 0 仅显示
@show_spid_if_nolock bit=0, --如果没有阻塞的进程,是否显示正常进程信息,1 显示,0 不显示
@dbname sysname='' --如果为空,则查询所有的库,如果为null,则查询当前库,否则查询指定库
as
set nocount on
declare @count int,@s nvarchar(2000),@dbid int
if @dbname='' set @dbid=db_id() else set @dbid=db_id(@dbname)
s ......
通过oracle 11g 连接mssql 2005 报下面的错误
select * from maintanance@mssql
*
第 1 行出现错误:
ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 MSSQL)
oracle 11g listener.ora配置如下:
# listener.ora Network Configuration File: D:\app\Administrator\product\11.1.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME=UniteAlarm)
(ORACLE_HOME=D:\app\Administrator\product\11.1.0\db_1)
(ENVS=LD_LIBRARY_PATH=D:\app\Administrator\OraGtw11g_home1\dg4msql\driver\lib;D:\app\Administrator\product\11.1.0\db_1\LIB)
(PROGRAM=dg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = aRong)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
oracle 11g tnsnames.ora配置如下:
# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.1.0\db_1\network\admin\tnsna ......
通过oracle 11g 连接mssql 2005 报下面的错误
select * from maintanance@mssql
*
第 1 行出现错误:
ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 MSSQL)
oracle 11g listener.ora配置如下:
# listener.ora Network Configuration File: D:\app\Administrator\product\11.1.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME=UniteAlarm)
(ORACLE_HOME=D:\app\Administrator\product\11.1.0\db_1)
(ENVS=LD_LIBRARY_PATH=D:\app\Administrator\OraGtw11g_home1\dg4msql\driver\lib;D:\app\Administrator\product\11.1.0\db_1\LIB)
(PROGRAM=dg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = aRong)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
oracle 11g tnsnames.ora配置如下:
# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.1.0\db_1\network\admin\tnsna ......