SQL 游標 查詢資料庫中的所有表的資料個數

2022-02-23 17:07:53 字數 1698 閱讀 5669

--

sql語句-游標等使用

declare

@sql

nvarchar(500

) declare

@tablename

nvarchar(100

) declare

@iint

declare

@jnvarchar(20

)declare

@cstucount

int--

上方設定變數

set@i=1

--初始值

declare mcursor cursor

--設定游標

for--

for迴圈

select name from sysobjects where xtype='u

'--獲取所有的表名

open mcursor --

游標的使用開始,開啟游標

fetch

next

from mcursor into

@tablename

--for迴圈中獲取下一條記錄

while

@@fetch_status=0

--@@fetch_status全域性變數,0表示語句獲取成功,-1,-2均是失敗

begin

--開始

set@sql='

select @a=count(*) from '+

quotename(@tablename) --

設定sql語句到變數@sql

exec sp_executesql @sql,n'

@a int output

',@cstucount output --

執行語句,且將得到的值使用變數賦值@cstucount即為@a拿到的值

if@cstucount

>0--

如果記錄數》0表示有資料,則不進行重設定標識列

begin

print'第

'+convert(nvarchar(10),@i)+'個,

'+@tablename+'

,大於0,值為='+

convert(nvarchar(10),@cstucount

)end

else

begin

--set @sql='dbcc checkident('+quotename(@tablename)+', reseed, 1)' --這句查了一段時間,語句中拿的不太一樣,不過這裡直接給他放quotename節可以了,quotename能夠將物件程式設計有效的字串

--exec(@sql) --執行語句

print'第

'+convert(nvarchar(10),@i)+'個,

'+@tablename+'

,小於等於0,值為='+

convert(nvarchar(10),@cstucount

)end

set@i=@i

+1--設定i=i+1

fetch

next

from mcursor into

@tablename

--拿下乙個資料

endclose mcursor --

關閉游標

deallocate mcursor --

刪除游標

go--

顯示結果

sql查詢資料庫中包含某個值的所有表

統共分三步 第1步 建立乙個表,用來儲存包含該值的資料表和列名 create table dest table name varchar 60 column name varchar 60 第2步 拼接insert語句 select concat insert into dest select ta...

sql查詢資料庫中所有表名 續

讀取庫中的所有表名 select name from sysobjects where xtype u 讀取指定表的所有列名 select name from syscolumns where id select max id from sysobjects where xtype u and na...

利用SQL語句查詢資料庫中所有表

oracle select from all tables 系統裡有許可權的表 select from dba tables 系統表 select from user tables 當前使用者下的表 sql server 1,利用sysobjects系統表 在這個表中,在資料庫中建立的每個物件 例如...