mssql sqlserver 获取指定数据库下未提交事务(挂起事务)的方法分享


摘要:
下文分享查询指定数据库下”未提交事务”的方法分享,如下所示:
实验环境:sqlserver 2008 R2


  select *  from sys.dm_tran_locks where resource_type = 'OBJECT' and resource_database_id = 数据库ID
  --或
  select *  from sys.dm_tran_locks where resource_type = 'OBJECT' and resource_database_id = db_id('数据库名称')
  ---返回列说明---
request_session_id :代表会话ID
resource_associated_entity_id:涉及对象Id


---当我们查询出未提交事务,可以使用
dbcc inputbuffer(request_session_id)        ---获取脚本内容
OBJECT_NAME(resource_associated_entity_id)  ---获取表对象名称

 ---如果进程长时间阻塞,可以使用 
 kill  request_session_id   --强制终止进程

mssql sqlserver 查看指定对象在数据库中所依赖的对象的两种方法分享


摘要:
下文将分享获取对象所以来的方法及对象的查看方法,
常用于查找表对象被多少个存储过程、视图、函数、约束(外键)引用
查找存储过程、函数、触发器、视图等等对象涉及多少个其它对象引用
如下所示
实验环境:sqlserver 2008 R2



一、采用SSMS管理器查看指定对象所依赖对象的方法

1.打开SSMS连接到相应的数据库引擎

2.依次打开”数据库”–>”表”–>”找到相应的表”–>右键”查看依赖关系”

2.mssql_sqlserver_表_依赖关系查看方法分享

2.mssql_sqlserver_表_依赖关系查看方法分享


3.可以查看”依赖于***对象”,”***依赖的对象”
3.mssql_sqlserver_依赖对象_对象依赖查看方法

3.mssql_sqlserver_依赖对象_对象依赖查看方法



同理查看存储过程、视图、函数等其它对象的方法


二、使用sql脚本查看

  SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS [对象名称]
,o.type, o.type_desc, sm.definition
FROM sys.sql_modules AS sm
JOIN sys.objects AS o ON sm.object_id = o.object_id
where sm.definition like '%被依赖对象名称--通常为表名%'

mssql sqlserver 多行合并为一列的方法分享


摘要:
下文通过举例的方式分享将数据表中多行单列合并一列及单行多列合并为一列的方法分享,如下所示:
实验环境:sqlserver 2008 R2



多行合并为一列的方法语法如下所示:
declare @string varchar(max)
select @string=isnull(@string+’,’,”)+列名1 from 表名 [where] –多行单列合并为一列
select @string=isnull(@string+’,’,”)+列名1+列名2+列名…… from 表名 [where] –多行多列合并为一列

例:

   create table test(keyId int identity(1,1),
 info varchar(100),info2 varchar(10))
insert into test(info,info2)values
(N'猫猫小屋','a'),('maomao365.com','b'),
(N'sql教程','c')
go

 --单列字符串合并
 declare @tmp varchar(8000)
 select     @tmp=isnull(@tmp+',','')+info  from test  
 
  ---多列字符串合并
  declare @tmp2 varchar(8000)
  select    @tmp2=isnull(@tmp2+',','')+info+'|'+info2  from test  
 
  select  @tmp as [单列叠加],@tmp2 as [多列叠加]
  
  go
  truncate table test
  drop     table test