月度归档:2017年10月

mssql sql server db服务器维护脚本


一、查看数据库登录名信息

在 master数据库下,运行此脚本,获取Db服务器下,数据库用户名信息

SELECT name AS [登陆名],dbname AS [默认数据库名] ,
       createdate  AS [创建日期],updatedate  AS [更新日期],language    AS [语言信息] ,
       CASE WHEN isntname = 1 THEN '操作系统用户'
           ELSE 'DB用户'    END          AS [用户类型]  FROM master..syslogins;
 



二、最大工作线程数

SELECT  max_workers_count FROM  sys.dm_os_sys_info


三、获取当前连接所使用的协议类型

  SELECT net_transport
FROM   sys.dm_exec_connections
WHERE session_id = @@SPID;

返回指定会话ID所使用的协议类型


四、获取db服务器相关回话信息

SELECT * FROM sys.dm_exec_sessions WHERE session_id >=50 获取当前db服务器中,进程ID大于50的连接ID

SELECT * FROM sys.dm_exec_sessions WHERE session_id >=50 AND host_name=’USER-PC’ –查看指定机器的所有连接会话

SELECT * FROM sys.dm_exec_sessions WHERE session_id >=50 AND login_name=’sa’ —查看指定登录名的连接会话

SELECT * FROM sys.dm_exec_sessions WITH(NOWAIT) WHERE session_id >=50 AND status =’running’ –根据运行状态查看连接会话

—查看当前运行的sql
SELECT *
FROMsys.dm_exec_requests a
INNER JOIN sys.sysprocesses b ON a.session_id = b.spid
CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) AS c
WHERE a.session_Id >= 50

相关阅读:
mssql 获取存储过程耗时最长、逻辑读取次数最多的存储过程—应用于存储过程日常维护

MSSQL 事务方法中常用关键字简介


一、begin tran

事务开始时,所使用关键字,标记一个事务的开始点,如后续回滚事务,那么db服务器将会放弃事务开始点后续的所有sql语句执行内容。

begin tran 
或
begin tran 事务名称


二、commit tran

提交事务,使数据修改保存只数据库中,将数据的修改完全写入至数据库中。


三、rollback tran

回滚事务至开始点或回滚至事务保存点


四、save tran

创建一个事务保存点,使rollback 只可回滚至save tran点


例:
举例事务的用法


BEGIN TRAN tran_start    --开始事务

DECLARE @err int;
SET @err = 0;
    BEGIN TRY 
        UPDATE tableA SET updateDate = getDate() WHERE Name = '猫猫小屋';
        SET @err = @err + @@ERROR;
        --如果更新出错,@err变量会加1
        --SET @err = 1;
        UPDATE tableA SET updateDate =getdate() WHERE Name = 'maomao365.com';
        SET @err = @err + @@ERROR;
	--如果更新出错,@err变量会加1
    END TRY

BEGIN CATCH
    ---上面代码发生严重错误,则会采用下面的catch捕捉错误信息
    PRINT '出现异常,错误编号:' + convert(varchar,error_number()) + ',错误消息:' + error_message()
    SET @err = @err + 1
END CATCH

IF(@err > 0)
    BEGIN
        --执行出错,回滚事务
        ROLLBACK TRAN;
        PRINT '更新最后修改时间失败!';
    END
ELSE
    BEGIN
        --没有异常,提交事务
        COMMIT TRAN;
        PRINT '更新成功!';
    END
 

MSSQL Sql server 超实用系统存储过程简介


一、sp_help 表名

此存储过程的功能:获取表或视图结构的相关信息及表所涉及的相关信息,
表所涉及的标识列信息 所属文件组信息 所属索引信息
约束信息
是否被其它表引用为外键的信息
例:

sp_help 对象名

 create table A(keyId int identity,
info varchar(30)
)
go 

sp_help A
go

truncate table A
drop table A 
go


二、sp_helpdb

功能:查看指定数据库的大小及各文件组的大小
查看当前服务器下所有DB的大小

  sp_Helpdb 
     go
  sp_helpdb 'tempdb'
      go


三、sp_helpindex ‘对象名称’

sp_helpIndex功能主要是获取一张表所涉及的索引信息
返回一张表下面的索引名称 索引描述 索引所包含的列

sp_helpindex '对象名称(表对象 视图对象)'

例:

create table A(keyId int ,info1 varchar(20),info2 varchar(30),info3 varchar(30))
go
create index IX_A_KeyId on A  (keyId,info1) 
 include(info2,info3)
go
sp_helpIndex 'A'
go 
truncate table A 
drop table A 
go


四、sp_helpconstraint ‘对象名称’

获取一个对象上面的约束信息


五、sp_helpfile

获取当前DB数据库所对应的物理文件名称的相关详细信息
获取指定DB数据库文件的详细信息

sp_helpfile 
go
sp_helpfile 'dbFileName'
go;


六、sp_helpfilegroup 查看指定文件组的相关信息

此系统存储过程会显示文件组下面所属的文件数量
及每个文件的详细信息,如下所示:

sp_helpfilegroup 'primary'


七、sp_helptext 获取指定存储过程 函数 触发器 约束 默认值等sql脚本信息

例:
采用sp_helptext查看 存储过程的详细内容

create proc pr_test 
as 
begin
print '这是一个存储过程'
end
go

sp_helptext pr_test
go

drop proc pr_test 
go