SqlServer 系统存储过程

时间:2023-03-08 16:35:49

exec sp_databases; --查看数据库
exec sp_tables; --查看表
exec sp_columns Categories;--查看列
exec sp_helpIndex Categories;--查看索引
exec sp_helpConstraint Categories;--约束
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures';--查看存储过程创建、定义语句
exec sp_rename student, stuInfo;--修改表、索引、列的名称
exec sp_renamedb myTempDB, myDB;--更改数据库名称
exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库
exec sp_helpdb;--数据库帮助,查询数据库信息
exec sp_helpdb master;

--查询数据库中各表的行数、分配容量、数据所使用容量、索引使用容量

IF OBJECT_ID('tempdb..#temp') IS NOT NULL
BEGIN
DROP TABLE #temp
END

CREATE TABLE #temp
(
name VARCHAR(100),
rows INT ,
reserved varchar(20),
data varchar(20),
index_size varchar(20),
unused varchar(20)

)

DECLARE @tablename VARCHAR(100)
DECLARE @sql VARCHAR(500)
DECLARE @str VARCHAR(100)
DECLARE tablecursor CURSOR
FOR
SELECT name
FROM sysobjects
WHERE xtype = 'u'
OPEN tablecursor
FETCH NEXT FROM tablecursor INTO @tablename
WHILE @@fetch_status = 0
BEGIN
SET @str = @tablename
SET @sql = 'insert into #temp EXEC sp_spaceused ' + @tablename
EXEC(@sql)
FETCH NEXT FROM tablecursor INTO @tablename
END
CLOSE tablecursor
DEALLOCATE tablecursor
SELECT *
FROM #temp