第一次使用mssql游標

2022-02-24 21:53:17 字數 3398 閱讀 1883

第一次使用游標

簡單的操作

1

/*測試用表*/2

if(object_id('

ta') is

notnull)

3drop

tableta

4create

table

[dbo

].[ta](

5[id

][nchar

](100) null,

6[a]

[nchar

](100) null,

7[b]

[nchar

](100) null8)

910insert

into ta values(1,'

aa1','

ab1')11

insert

into ta values(2,'

aa2','

ab2')12

insert

into ta values(3,'

aa3','

ab3')13

/*測試用表

*/14

if(object_id('

tb') is

notnull)15

drop

table

tb16

create

table

[dbo

].[tb](

17[id]

[nchar

](100) null,18

[a][

nchar

](100) null,19

[b][

nchar

](100) null20)

2122

insert

into tb values(1,'

ba1','

bb1')23

insert

into tb values(2,'

ba2','

bb2')24

insert

into tb values(3,'

ba3','

bb3')25

/*測試用表

*/26

if(object_id('

tc') is

notnull)27

drop

table

tc28

create

table

[dbo

].[tc](

29[id]

[nchar

](100) null,30

[a][

nchar

](100) null,31

[b][

nchar

](100) null32)

3334

insert

into tc values(1,'

ca1','

cb1')35

insert

into tc values(2,'

ca2','

cb2')36

insert

into tc values(3,'

ca3','

cb3')37

3839

if(object_id('

proc_test

') is

notnull)40

drop

procedure

proc_test

4142

go43

44/*

建立儲存過程

*/45

create

procedure

proc_test

46as

47/*

建立第乙個游標

*/48

declare cur_test cursor

local read_only

49for

50select

*from

ta 51

/*開啟游標

*/52

open

cur_test;

5354

declare

@idnvarchar(20

);55

declare

@anvarchar(20

);56

declare

@bnvarchar(20

);57

58/*

讀取游標

*/59

fetch

next

from cur_test into

@id,@a,@b

60/*

遍歷游標

*/61

while(@@fetch_status=0

)62begin

63/*

巢狀建立游標

*/64

declare cur_test2 cursor

local read_only

65for

select

*from

tb66

open

cur_test2;

67declare

@bid

nvarchar(20

);68

declare

@banvarchar(20

);69

declare

@bbnvarchar(20

);70

71fetch

next

from cur_test2 into

@bid,@ba,@bb

72while(@@fetch_status=0

)73begin

74/*

更新操作

*/75

update tc set a=@a+

@ba, b=@b+

@bbwhere id=

@bid

76fetch

next

from cur_test2 into

@bid,@ba,@bb

77end

78close

cur_test2;

79deallocate

cur_test2;

8081

fetch

next

from cur_test into

@id,@a,@b

82end

8384

close

cur_test;

85deallocate

cur_test;

8687

/*執行

*/88

exec proc_test

效能不好,尋找代替方法。

第一次使用

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

第一次使用

test 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示 ...

第一次使用

第一次使用!你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示...