--事務xml控制
--用事務/xml實現函式效果
create
table
ta(id int
,name
varchar
(50))
insert
taselect
1,'a'
union all
select
1,'b'
union all
select
1,'a'
union all
select
2,'e'
union all
select
2,'f'
union all
select
3,'g'
union all
select
3,'h'
union all
select
3,'i'
union all
select
3,'j'
union all
select
4,'k'
union all
select
4,'m'
union all
select
4,'l'
union all
select
5,'a'
union all
select
5,'b'
union all
select
5,'c'
union all
select
5,'d'
union all
select
5,'e'
union all
select
6,'f'
union all
select
6,'g'
union all
select
6,'h'
union all
select
6,'k'
union all
select
6,'m'
--合併效果
/*id
name
----------- ----------1a
,b,a
2e,f3g
,h,i,j
4k,m,l5a
,b,c,d,e6f
,g,h,k,m
(6 個資料列受到影響)*/
--方法
1(不用函式實現更新、查詢
) 如下用於幾列合併一列方法
1比方法
2效率高
declare
@tb table
(id int
,name
varchar
(50),
con int
identity(1,
1))insert
@tbselect
*from
tabegin
tran
while
exists(
select
1 from
@tb)
begin
update
aset
a.name=
a.name+
','+
b.name
from
ta a ,
@tb b
where
a.id=
b.id
andnot
exists(
select
*from
@tb where
id=b.id
and con<
b.con )
delete
bfrom
@tb b where
notexists(
select
1 from
@tb where
id=b.id
and con<
b.con)
endselect
distinct
id,顯示=
stuff
(name,1,
charindex
(','
,name
),''
)from
ta--
以下用於更新
commit tran
替換rollback tran
--update ta set
name=stuff(name,1,charindex(',',name),'')
--commit tran
rollback
tran
select
*from
ta--
方法2(
通過建立函式實現查詢更新、查詢
)create
function
ta_fun(
@id int
)returns
varchar
(1000)
asbegin
declare
@sql varchar
(1000)
set @sql=
''select
@sql=
@sql+
','+
name
from
ta where
id=@id--print @sql
return
stuff
(@sql,
1,1,'')
endselect
distinct
id,顯示=
dbo.
ta_fun(
id)from
ta --select id,
顯示=dbo.ta_fun(id) from ta group by id
--以下用函式更新
update
ta set
name
=dbo.
ta_fun(
id)--drop table ta
刪測試表
--drop function ta_fun
刪測試函式
--以下用
sql2005
實現方法
--xml方法1
select
*from
(select
distinct
id from
ta )
aouter
(select
[name]=
stuff
(replace
(replace
((select
name
from
ta n where
id =
a.id for
xmlauto
),',
','),
'"/>',''
), 1,
1,''))n
--xml方法2
select
id, [name]=
stuff
((select
','+
name
from
ta where
id=a.id for
xmlpath(''
)),1,
1,''
)from
ta a
group
by id
PHP中使用事務例項
pdo和mysql的寫法不一樣,處理方式一樣 dbhost localhost 3306 mysql伺服器主機位址 dbuser root mysql使用者名稱 dbpass 123456 mysql使用者名稱密碼 conn mysqli connect dbhost,dbuser,dbpass i...
Javaweb 事務實現
為什麼需要事務 需要 有一張銀行賬戶表,a使用者給b使用者轉賬 a賬戶減少,b賬戶增加,但是a操作完之後斷電了?解決方案 a減少錢,但是不要立即修改資料表,b收到錢之後,同時修改資料表 什麼是事務 事務 transaction,一串行要發生的連續的操作。事務的特點 連續的操作要麼全部成功,要麼全部失...
Spring事務實現方式
1.一種是使用xml實現事務 開發基本不用 transactional的所有可選屬性 propagation 用於設定事務傳播屬性。該屬性型別為 propagation 列舉,預設值為 propagation.required。isolation 用於設定事務的隔離級別。該屬性型別為 isolati...