原文:
游標遍歷所有資料庫迴圈執行修改資料庫的sql命令
mssql資料庫伺服器上有很多類似的資料庫,需要將這些資料庫統一修改其中的某些表或者某些命令,那麼就會想到用游標來遍歷。
先來說思路:
1,首先需要查詢出所有的資料庫;
select [name] from [master].[dbo].[sysdatabases] order by [name]; --查詢mssql中所有資料庫名稱
2,用游標cursor來集合查詢出來的資料庫名稱集合,來實現迴圈遍歷每乙個資料庫;
3,在迴圈遍歷每乙個資料庫名稱時,通過拼接sql語句來實現命令字串,並且用exec執行命令;
注意:可以根據個人需要對資料庫名稱進行篩選。
**示例如下:
declare@sysname sysname; --
資料庫名稱變數
declare my_cursor cursor
--定義游標
for (select
[name
]from
[master
].[dbo
].[sysdatabases
]) --
查出所有的資料庫名稱的集合放到游標中
open my_cursor; --
開啟游標
fetch
next
from my_cursor into
@sysname; --
讀取下一行/第一行資料並存放在變數值中
while
@@fetch_status=0
--是否可繼續執行迴圈狀態
begin
--print @sysname;
declare
@sql
nvarchar(max); --
sql命令字串
set@sql='
use ['+
@sysname+'
];';
--begin
if (charindex('
', @sysname)>
0) --
begin
set@sql+='
select * from dbo.access_token
'; --
自定義的sql命令
@sql
;
endelse
begin
@sql
;
end--
endexec(@sql); --
執行字串sql
fetch
next
from my_cursor into
@sysname; --
讀取下一行資料並存放在變數值中
endclose my_cursor; --
關閉游標
deallocate my_cursor; --
釋放游標
go
結束,歡迎指正。
SQL利用游標遍歷所有資料並更新所有資料
如果對資料進行遍歷迴圈操作,通過sql的游標就可以實現,下面就為您詳細介紹該方法,供您參考,希望對您學習sql資料庫能夠有所幫助。sql游標的優點是可以方便從乙個結果集中進行迴圈遍歷資料在進行操作。1 游標允許應用程式對查詢語句select 返回的行結果集中每一行進行相同或不同的操作,而不是一次對整...
斷開所有資料庫連線
create proc killspid dbname varchar 20 as begin declare sql nvarchar 500 declare spid int set sql declare getspid cursor for select spid from sysproce...
SQL Server 查詢資料庫中所有資料庫名錶名
1.查詢資料庫中的所有資料庫名 select name from master sysdatabases order by name 2.查詢某個資料庫中所有的表名 select name from sysobjects where xtype u order by name xtype u 表示所...