--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系統表 在這個表中,在資料庫中建立的每個物件 例如...