sql批處理語句
㈠ 如果通過批處理執行sql server語句
樓主你好,首先,我鄙視下樓上的二位。
您的意思是,把查詢語句都寫在一個文本文件里,然後雙擊一個bat文件,就自動執行文本文件里的語句對吧,OK,看下面步驟:
1.新增一個批處理文件:如a.bat
2.新增一個SQL腳本文件:如a.sql
3.a.bat中輸入:
isql -U 用戶名 -P 密碼 -i c:\a.sql
同樣在bat文件中,輸入上面一行,在a.sql輸入腳本.
如:
use 資料庫名
go
select * from 表名
go
注意:如果您是SQL 2005的,請把bat文件中的isql改成osql即可。
祝您成功!
㈡ SQL server中的事務與批處理語句有什麼區別
ACID,是指在可靠資料庫管理系統(DBMS)中,事務(transaction)所應該具有的四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability).這是可靠資料庫所應具備的幾個特性.下面針對這幾個特性進行逐個講解.
原子性意味著資料庫中的事務執行是作為原子。即不可再分,整個語句要麼執行,要麼不執行。 在SQL SERVER中,每一個單獨的語句都可以看作是默認包含在一個事務之中:
對於用戶來說,要用事務實現的自定義原子性往往是和業務相關的,比如銀行轉賬,從A賬戶減去100,在B賬戶增加100,如果這兩個語句不能保證原子性的話,比如從A賬戶減去100後,伺服器斷電,而在B賬戶中卻沒有增加100.雖然這種情況會讓銀行很開心,但作為開發人員的你可不希望這種結果.而默認事務中,即使出錯了也不會整個事務進行回滾。而是失敗的語句拋出異常,而正確的語句成功執行。這樣會破壞原子性。所以SQL SERVER給予了一些選項來保證事務的原子性.
資料庫中實現事務性有三種方法,這里只介紹前兩種方法:
1. 在事務語句最前面加上set xact_abort on
如:
create procere SP_Trans_Account @UserID int,@DestID int,@imoney bigint
as
begin
set xact_abort on
begin tran
update TUserInfo set WalletMoney=WalletMoney+@imoney where UserID=@DestID
update TUserInfo set WalletMoney=WalletMoney-@imoney where UserID=@UserID
commit tran
end當xact_abort 選項為on 時,SQL Server在遇到錯誤時會終止執行並rollback 整個事務。
2. 在每個單獨的DML語句執行後,立即判斷執行狀態,並做相應處理。
create procere SP_Trans_Account @UserID int,@DestID int,@imoney bigint
begin tran
update TUserInfo set WalletMoney=WalletMoney+@imoney where UserID=@DestID
update TUserInfo set WalletMoney=WalletMoney-@imoney where UserID=@UserID
if @@error<>0 --如果不為零,表示事務發生錯誤,則回滾事務
begin
rollback tran
end
else
begin
commit tran --提交事務
end
原文鏈接:網頁鏈接
㈢ SQL批處理語句是什麼
不是的,這個在這里一兩句講不清楚的,您需要專門學習一下P/L SQL的知識,可以說是一種依託於資料庫實現的腳本語言,最大的用途就是寫資料庫函數和存儲過程。
㈣ 在SQL資料庫中,什麼叫批處理
批處理就是單個或多個T—SQL語句的集合,由應用程序一次性發送給SQL
Server解析執行處理內的所有語句指令。
㈤ 如何用批處理寫一條SQL的語句
mssql 中isql 工具支持批處理,把sql語句寫到文件中,然後建一個批處理語句,isql -Sserver -Usa -Ppass -c -d databasename -i執行文件名 -o 執行結果log
㈥ 在SQL資料庫中,什麼叫批處理
批處理就是把一批SQL腳本按順序執行!
通常用GO來分割不同的批處理!
㈦ sql中的批處理
SQL批處理:指包含一條或多條T - SQL語句的語句組,這組語句從應用程序一次性地發送到SQL server伺服器執行。編批處理程序時,最好能夠以分號結束相關語句。雖然這不資料庫強制求,但筆還強烈建議如此處理。方面這有利於提批處理程序讀性。批處理程序往往完成些比較復雜成套功能,而每條語句則完成項獨立功能。此有時個比較復雜些批處理程序其往往有百行容。此時提其讀性,最好能夠利分號進行語句語句間分隔。二未版本性。其實SQL Server資料庫設計時候,開始這方面就關不嚴。現部分標准程序編器都實現類似強制控制。根據憲梓微軟官方提供資料看,以SQL Server資料庫版本,這個規則能成個強執行規則,即必須每條語句面利分號進行分隔。此能夠跟續SQL Server資料庫版本進行,最好從現開始就采分號分隔批處理程序每條語句。
㈧ DELPHI中SQL語句的批處理是怎麼寫的
沒有用過批處理,只是一條一條執行sql,完畢就可以
用事務,不用Tadoquery等組件:
procere TForm1.Button1Click(Sender: TObject);
begin
adoconnection1.begintrans;
try
adoconnection1.execute(update 語句);
如果還有insert 語句則:
adoconnection1.execute(update 語句);直到所有update語句完成.
adoconnection1.committrans;
except
adoconnection1.rollbacktrans;
end;
end;
說的更通俗一點就是
SQL Server支持一次執行多條SQL語句的,直接放在SQL.Text就可以
比如:
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * From Table1');
SQL.Add('Update Table2 Set Field1=1');
Open;
end;
兩條語句都會被執行
用事務處理,如果執行時出現異常,可以adoconnection1.rollbacktrans撤銷。
adoconnection1.begintrans;
//UPDATE語句1
//UPDATE語句2
//UPDATE語句3
。。。。。。
adoconnection1.rollbacktrans;
㈨ SQL批處理語句解釋
select * from reader
--查詢reader表所有數據
alter table reader--修改表 reader
add rscore int--添加列 rscore 類型為 int
update reader set rscore=20 where rid=1
update reader set rscore=510 where rid=2
update reader set rscore=4679 where rid=3
update reader set rscore=2200 where rid=4
---設置 每行rscore 的值
case... when... then
select *,[level]=case
when rscore<=100 then '一級'
when rscore<=500 then '二級'
when rscore<=1000 then '三級'
when rscore<=2000 then '四級'
when rscore<=4000 then '五級'
else '頂級'
end
from reader
--以上查詢所有數據值 並增加一列level 根據rscore的值大小進行處理
--添加讀者類型這一列
alter table reader
add rtype int
--顯示讀者類型信息,用中文顯示
select *,讀者類型=case rtype when 1 then '普通讀者'
when 2 then '會員讀者'
when 3 then '黃金讀者'
end,
等級=case when rscore<=100 then '一級'
when rscore<=500 then '二級'
when rscore<=1000 then '三級'
when rscore<=2000 then '四級'
when rscore<=4000 then '五級'
else '頂級'
end
from reader
-- 以上同理