是sqlserver2005版本中新增一個目錄視圖,它存儲了當前資料庫中的所有表信息,在功能上大致和sqlserver2005之前版本的select * from sysobjects where xtype='u'的功能一樣。
基本介紹
- 外文名:sqlserver2005
- 格式:sys.tables
- 來源:sqlserver2005
- 性質:新增的目錄視圖
介紹,列說明,套用示例,
介紹
sys.tables是sqlserver2005版本中新增一個目錄視圖,它存儲了當前資料庫中的所有表信息,在功能上大致和sqlserver2005之前版本的select * from sysobjects where xtype='u'的功能一樣。
列說明
列名 | 數據類型 | 說明 |
---|---|---|
lob_data_space_id | int | |
filestream_data_space_id | int | 僅限內部系統使用。 |
max_column_id_used | int | 此表曾使用的最大列 ID。 |
lock_on_bulk_load | bit | 鎖被鎖定於大容量裝載。有關詳細信息,請參閱 sp_tableoption (Transact-SQL)。 |
uses_ansi_nulls | bit | 創建表時,SET ANSI_NULLS 資料庫選項設定為 ON。 |
is_replicated | bit | 1 = 使用快照複製或事務複製發布表。 |
has_replication_filter | bit | 1 = 表具有複製篩選器。 |
is_merge_published | bit | 1 = 使用合併複製發布表。 |
is_sync_tran_subscribed | bit | 1 = 使用立即更新訂閱來訂閱表。 |
has_unchecked_assembly_data | bit | 1 = 表包含的持久化數據依賴於上次 ALTER ASSEMBLY 期間其定義發生更改的程式集。在下一次成功執行 DBCC CHECKDB 或 DBCC CHECKTABLE 後將重置為 0。 |
text_in_row_limit | int | Text in row 的最大允許位元組數。 0 = 未設定 Text in row 選項。有關詳細信息,請參閱 sp_tableoption (Transact-SQL)。 |
large_value_types_out_of_row | bit | 1 = 超行存儲大值類型。有關詳細信息,請參閱 sp_tableoption (Transact-SQL)。 |
套用示例
1,查看當前資料庫的所有表
select * from sys.tables
2,查詢資料庫中所有表的數據行數
declare @TableName varchar(128)
declare @T_TableRows Table
(
TableName varchar(128) not null,
RowsCount int not null default(0)
)
declare cur_table cursor local for
select name from sys.tables order by name
open cur_table
fetch cur_table into @TableName
while @@fetch_status = 0
begin
insert into @T_TableRows(TableName,RowsCount)
exec('select ''' + @TableName + ''',count(*) from ' + @TableName)
fetch cur_table into @TableName
end
close cur_table
deallocate cur_table
3,刪除資料庫中所有表中的數據
declare @TableName varchar(128)
declare cur_table cursor local for
select name from sys.tables order by name
open cur_table
fetch cur_table into @TableName
while @@fetch_status = 0
begin
exec('delete from ' + @TableName + ')
fetch cur_table into @TableName
end
close cur_table
deallocate cur_table