SQL Server 数据库系统对象应用(1)

来源:互联网 发布:天猫魔盒安装直播软件 编辑:程序博客网 时间:2024/05/21 07:41

1.数据库表信息查询视图

--查找所有用户表的信息

IF object_id(N'dbo.TableInfo', 'V') IS NOT NULL
 DROP VIEW dbo.TableInfo
GO

CREATE VIEW TableInfo AS


SELECT S.name AS [SCHEMA],O.name AS TABLENAME,C.name AS COLUMNNAME,T.name AS DATATYPE,C.max_length AS [LENGTH],C.is_nullable AS [ISNULL]
FROM sys.all_columns C
LEFT JOIN sys.all_objects O ON C.object_id=O.object_id
LEFT JOIN sys.systypes T ON C.system_type_id=T.xtype
LEFT JOIN sys.schemas S ON O.schema_id=S.schema_id
WHERE O.type='U'


GO
--SELECT * FROM dbo.tableInfo;

 

 

2. 表和数据库遍历的系统存储过程

sp_MSforeachtable--表遍历

@command1 nvarchar(2000),              --第一条运行的SQL指令
@replacechar nchar(1) = N'?',          --表占位符
@command2 nvarchar(2000)= null,        --第二条运行的SQL指令
@whereand nvarchar(2000)= null,        --可选条件来选择表
@precommand nvarchar(2000)= null,      --执行指令前的操作(类似控件的触发前的操作)
@postcommand nvarchar(2000)= null      --执行指令后的操作(类似控件的触发后的操作)

 

sp_MSforeachdb--数据库遍历

@command1 nvarchar(2000),              --第一条运行的SQL指令
@replacechar nchar(1) = N'?',          --数据库占位符
@command2 nvarchar(2000)= null,        --第二条运行的SQL指令
@precommand nvarchar(2000)= null,      --执行指令前的操作(类似控件的触发前的操作)
@postcommand nvarchar(2000)= null      --执行指令后的操作(类似控件的触发后的操作)

 

example:

 

EXEC sp_MSforeachtable @command1="print '?'"

EXEC sp_MSforeachdb      @command1="print 'DBCC SHRINKDATABASE ('+'?'+',10)' "

 

 3.OLE自动化存储过程

sp_OACreate{progid|clsid,objecttoken OUTPUT[,context]}  创建一个OLE对象实例
sp_OADestory {objecttoken} 释放一个先前创建的OLE对象所占的资源
sp_OAMethod {objecttoken,methodname[,returnvalue OUTPUT][[,@parametername=] parameter[OUTPUT][...n]]}调用一个OLE对象的方法
sp_OAGetProperty{objecttoken,properityname[,properityvalue OUTPUT]} 获取OLE对象的指定属性
sp_OASetProperty{objecttoken,properityname,newvalue} 设置OLE对象的指定属性
sp_OAStop 停止服务器范围内的OLE自动化存储过程执行环境
sp_OAGetErrorInfo{[objecttoken][,source OUTPUT][,description OUTPUT][,helpfile OUTPUT][,helpid OUTPUT]} 获取出错的错误信息

原创粉丝点击