SQL入門經典 七 之指令碼和批處理

2022-03-18 15:43:35 字數 2920 閱讀 1350

什麼是指令碼。我們前面學的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

結果:下面截圖

使用流程控制語句:

先建立資料表

use

panda

gocreate

table

test004

( id

intidentity(1,1) primary

key,

name

nvarchar(20) not

null

, typeint

int)

if....else:基本語法if|beginend [else |beginend]其中的表示式幾乎可以是任何布林表示式.

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

多條語句 :

if

(boolen expression)

begin

--語句1

--語句2

--語句3

end--

多條語句綁在一起成一條語句

case:基本語法: casewhen then [.....][else ] end

select  id,name, [

state]=

case typeint%

4when

1then'發貨

'when

2then'簽收

'when

3then'退貨

'else'未知

while 基本語法:while |[begin [break]|[continue] end];

break 是強制結束迴圈。continue 重新回到起點,停止當前迴圈。

declare

@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

waitfor : 基本語法:waitfor delay< 'time'> |time

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...