如何啟動Transaction; 共有三種方式
創(chuàng)新互聯(lián)是專業(yè)的普安網(wǎng)站建設(shè)公司,普安接單;提供網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行普安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
1.自動transaction
每句statement都是一個transaction.例一個update指令更新多筆紀錄, 要就全部成功, 只要失敗,全部會回復原值.
2.ExplicitTransaction
以Begin Transaction開始(開啟)
3.ImplicitTransaction (建議不要用)
以Set Implicit_Transaction ON
如何結(jié)束Transaction; 共有三種方式
1. COMMIT Transaction(提交)
Transaction期間的任何修改,都會保證到數(shù)據(jù)庫中
2. ROLLBACK Transaction(回滾)
數(shù)據(jù)會回復Transaction前狀態(tài)
3. KILL SPID 強迫停止, 會rollback
不知你用什么提交的,如果是軟件,也許軟件先提示后修改,如果是在查詢分析器里邊,修改了一定會立即變化的。是不是你查看的方式有問題?
這個是你的工作么,這個問題應該不難,
針對你的三個問題給你三個解決方案:
寫一個查詢語句個ado控件,然后連接connection控件就可以了,
使用合適的支持多選的客戶端表格控件控件可以實現(xiàn);
寫一個循環(huán)遍歷你的ado控件檢測是否選中的標記,對于選中的記錄一個update語句就搞定了
問題都不難,應該不困難。
方法很多:
DTS:數(shù)據(jù)轉(zhuǎn)換服務導入導出向?qū)Щ蛘逥TS設(shè)計器創(chuàng)建DTS包
使用SQL SERVER復制發(fā)布數(shù)據(jù)
BCP命令提示實用工具實現(xiàn)SQL SERVER實例和數(shù)據(jù)文件之間的數(shù)據(jù)導入導出
BULK INSERT實現(xiàn)從數(shù)據(jù)文件導入數(shù)據(jù)到SQL SERVER實例
分布式查詢實現(xiàn)從一個數(shù)據(jù)源選擇數(shù)據(jù)插入到SQL SERVER實例
SELECT INTO 語句插入數(shù)據(jù)表
看例子:
它常用于將大量的數(shù)據(jù)從另外的程序轉(zhuǎn)移到SQL SERVER表中。當然也可以用于將表中數(shù)據(jù)傳輸?shù)綌?shù)據(jù)文件中。
下面是一些BCP的簡單用法(關(guān)于很多的選項使用看相關(guān)文檔)
--前序,開啟xp_cmdshell
--關(guān)于xp_cmdshell的一些知識請看
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
--環(huán)境
create table test
(
id int,
value varchar(100)
)
go
insert test values(1,'s1')
insert test values(2,'s2')
insert test values(3,'s3')
insert test values(4,'s4')
go
--1將表的數(shù)據(jù)導出到TEXT.txt文件中
exec master..xp_cmdshell 'bcp tempdb.dbo.test out e:\test.txt -c -Usa -P123456'
--如果是WINDOWS身份直接xec master..xp_cmdshell 'bcp tempdb.dbo.test out e:\test.txt -T -c'
--2將TEXT.txt文件中的數(shù)據(jù)復制到test1表
select * into test1 from test where 1=2
exec master..xp_cmdshell 'bcp tempdb.dbo.test1 in e:\test.txt -c -Usa -P123456'
select * from test1
--3將TEST表的ID字段復制到TEXT.txt中
exec master..xp_cmdshell 'bcp "SELECT id FROM tempdb.dbo.test" queryout e:\test.dat -T -c'
--4將test表中的第一行移動到text.txt中
exec master..xp_cmdshell 'bcp "SELECT top 1 * from tempdb.dbo.test " queryout e:\test.txt -c -Usa -P123456'
--關(guān)閉xp_cmdshell
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;
1、sqlserver中默認:一條語名,一個事物。即:執(zhí)行完一個語句后,會自動提交事物。
2、如果手工開啟了事物,沒有手工提交,在你關(guān)閉窗口時,會自動回滾。