什麼是指令碼。我們前面學的create table ,use 這些都是指令碼,為什麼用指令碼。指令碼儲存到檔案中並且可以重複利用和提取的檔案。
建立變數: declare語句最常用的語法: declare @[=value][[,@[=value]@[=value],[.....n]];
declare@totalcount
int=0--
建立變數,並初始化值(sql server2008以下資料庫報錯)
select
@totalcount
--輸出0
set@totalcount=10
--設定變數值為10
select
@totalcount
--輸出10
select
@totalcount
=count(*) from
dbo.test003
select
@totalcount
--輸出5
也可以建立table。
declare
@temp
table
( id
intidentity(1,1) primary
key,
name
nvarchar(20) not
null
)insert
into
@temp
values('
test_1');
insert
into
@temp
values('
test_2');
select
*from
@temp
結果:下面截圖
使用流程控制語句:
先建立資料表
useif....else:基本語法if|beginend [else |beginend]其中的表示式幾乎可以是任何布林表示式.panda
gocreate
table
test004
( id
intidentity(1,1) primary
key,
name
nvarchar(20) not
null
, typeint
int)
declare多條語句 :@count
intset
@count=0
;while(@count
<
100)
begin
set@count
=@count+1
;
if(@count%4
=0)
insert
into dbo.test004 values('
test_'+
convert(nvarchar(20),@count),0
);
else
insert
into dbo.test004 values('
test_'+
convert(nvarchar(20),@count),@count%4
);end
ifcase:基本語法: casewhen then [.....][else ] end(boolen expression)
begin
--語句1
--語句2
--語句3
end--
多條語句綁在一起成一條語句
select id,name, [state]=
case typeint%
4when
1then'發貨
'when
2then'簽收
'when
3then'退貨
'else'未知
while 基本語法:while |[begin [break]|[continue] end];
break 是強制結束迴圈。continue 重新回到起點,停止當前迴圈。
declarewaitfor : 基本語法:waitfor delay< 'time'> |time@count
intset
@count=0
;while(@count
<
100)
begin
set@count
=@count+1
; insert
into dbo.test004 values('
test_'+
convert(nvarchar(20),@count),@count/4
)end
delay 引數指定等待的時間段,不能指定天數-只能指定小時數、秒數、允許延遲最長時間為24小時。因此,如下語句。waitfor delay '24:00'將執行waitfor 語句前的任何**。然後達到waitfor語句停止24小時,之後繼續執行下一條語句。
time 引數引數指定等待的時間段,不能指定日期,只能是24小時制某個時間,同樣最長延遲時間也是一天。因此,如下語句。waitfor time '00:00'將執行waitfor 語句前的的任何**,直到凌晨0點停止執行。之後執行waitfor語句後下一條**。
批處理合併SQL指令碼
專案開發過程中版本公升級的時候經常需要有資料庫公升級指令碼,有時候sql指令碼還很多,運維工程師乙個乙個的跑很麻煩,現把所有指令碼合併成乙個指令碼,一次執行就ok了。建立乙個批處理檔案 full.bat rem 合併sql指令碼 echo off set filename full.sql if e...
MSSQL用批處理執行多個sql指令碼
開始 執行 cmd osql 可以檢視引數資訊。注意 osql 並不支援 sql server 2008的所有功能。請使用 sqlcmd。有關詳細資訊,請參閱 sql server 聯機叢書。用法 osql u 登入 id p 密碼 s 伺服器 h 主機名 e 可信連線 d 使用資料庫名稱 l 登入...
使用sqlcmd在批處理指令碼中執行SQL
使用sqlcmd可以在批處理指令碼中執行sql。雖然這個命令的引數很多,但幸運的是,我們不需要全部理解,在這裡簡要介紹以下幾個 e trusted connection 如果指定了 e就不需要指定使用者名稱密碼,當然指定了使用者名稱密碼就不用 e了 s server name instance na...