-
SQL Server自定义异常raiserror使用示例
所属栏目:[MsSql教程] 日期:2020-12-12 热度:123
在使用SQL Server存储过程或者触发器时,通常会使用自定义异常来处理一些特殊逻辑。例如游标的销毁,事务的回滚。接下来将会详细的介绍SQL Server自定义异常的使用。 使用“raiserror”来抛出自定义异常。如下代码:在存储过程中,抛出自定义异常,然后在cat[详细]
-
SQL Server中查看对象定义的SQL语句
所属栏目:[MsSql教程] 日期:2020-12-12 热度:124
除了在SSMS中查看view,存储过程等定义,也可以使用下面的语句直接查询: 代码如下:SELECT object_definition(object_id('sys.tables')); go sp_helptext 'sys.tables' go select * from sys.system_sql_modules whereobject_id = object_id('sys.tables') 适[详细]
-
SqlServer中查看当前Open的Cursor方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:65
遇到错误:A cursor with thename ' ' already exists,想要看是什么代码导致的。找到下面几种方法. --使用下面的三种方法都可以 SELECT ec.session_id,ec.name,ec.properties,ec.creation_time,ec.is_open,ec.writes,ec.reads,t.text FROM sys.dm_exec_curs[详细]
-
查询SQLServer启动时间的三种方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:80
上午在分析索引的使用情况,想看一下数据库什么时候启动的,确保统计的数据没有问题,可以使用下面三种方法查询: select crdate from master..sysdatabaseswherename='tempdb' SELECT login_time FROMsysprocesses WHEREspid= 1[详细]
-
查询SQL Server Index上次Rebuild时间的方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:186
朋友有一个Rebuild Index的Job执行一般停掉了,问我是否可以查看哪些Index已经被Rebuild过了。本来以为Sys.index或者Sys.objects会存储类似的信息,结果没有找到。 从网上查了一下,SQL Server没有存储类似的信息。但是因为Rebuild Index会自动更新统计信息[详细]
-
SQL语句实现查询SQL Server服务器名称和IP地址
所属栏目:[MsSql教程] 日期:2020-12-12 热度:71
获取服务器名称: 获取IP地址可以使用xp_cmdshell执行ipconfig命令: begin declare @ipline varchar(200) declare @pos int declare @ip varchar(40) set nocount on set @ip = null if object_id('tempdb..#temp') is not null drop table #temp create ta[详细]
-
SQL语句实现查询SQL Server内存使用状况
所属栏目:[MsSql教程] 日期:2020-12-12 热度:150
div class="jb51code" pre class="brush:sql;" SELECT type,--Clerk的类型 sum(virtual_memory_reserved_kb)as vm_Reserved_kb,--保留的内存 sum(virtual_memory_committed_kb)as vm_Committed_kb,--提交的内存 sum(awe_allocated_kb)as awe_Allocated_kb,--[详细]
-
SQL语句实现查询Index使用状况
所属栏目:[MsSql教程] 日期:2020-12-12 热度:91
div class="jb51code" pre class="brush:sql;" SELECT sch.name + '.' + t.name AS [Table Name],i.name AS[Index Name],i.type_desc,ISNULL(user_updates,0) AS [Total Writes],ISNULL(user_seeks +user_scans + user_lookups,0) AS [Total Reads],s.last_u[详细]
-
SQL语句实现查询并自动创建Missing Index
所属栏目:[MsSql教程] 日期:2020-12-12 热度:162
div class="jb51code" pre class="brush:sql;" SELECT migs.avg_total_user_cost (migs.avg_user_impact/ 100.0) (migs.user_seeks + migs.user_scans) ASimprovement_measure,'CREATE INDEX[missing index ' + CONVERT(varchar,mig.index_group handle) + '[详细]
-
SQL语句实现查询当前数据库IO等待状况
所属栏目:[MsSql教程] 日期:2020-12-12 热度:118
sys.dm_io_pending_io_requests可以返回当前IO Pending的状态,对于SQL Server 中每个挂起的I/O 请求,返回与其对应的一行,跟sys.dm_io_virtual_file_stats配合可以看到具体是哪个数据库IO出现问题。[详细]
-
SQL Server中通配符的使用示例
所属栏目:[MsSql教程] 日期:2020-12-12 热度:57
在某些情况下熟悉SQL Server 通配符的使用可以帮助我们简单的解决很多问题。 ---使用[^]运算符在Contact表中查找所有名字以Al开头且第三个字母不是字母a的人 USEAdventureWorks2012; GO SELECT FirstName,LastName FROM Person.Person WHERE FirstName LIKE'[详细]
-
SQL Server中使用Trigger监控存储过程更改脚本实例
所属栏目:[MsSql教程] 日期:2020-12-12 热度:101
下面的Trigger用于监控存储过程的更改。 创建监控表: 创建监控Trigger: DECLARE @eventdata XML; SET @eventdata = EVENTDATA(); INSERT INTOAuditStoredProcedures(DatabaseName,ObjectName,LoginName,ChangeDate,EventType,EventDataXml) VALUES ( @event[详细]
-
SQL Server查询数据库中表使用空间信息实现脚本
所属栏目:[MsSql教程] 日期:2020-12-12 热度:111
使用了微软提供的不公开的存储过程sp_MSforeachtable EXEC sp_MSforeachtable'INSERT INTO #temp (TableName,RowsCnt,ReservedSpace,DataSpace,CombinedIndexSpace,UnusedSpace) EXEC sp_spaceused '''',FALSE' SELECT TableName,UnusedSpace FROM #temp ORD[详细]
-
SQL Server根据分区表名查找所在的文件及文件组实现脚本
所属栏目:[MsSql教程] 日期:2020-12-12 热度:53
div class="jb51code" pre class="brush:sql;" SELECT ps.name AS PSName,dds.destination_idAS PartitionNumber,fg.name AS FileGroupName,fg.name,t.name,f.name as filename FROM (((sys.tables AS t INNER JOIN sys.indexes AS i ON (t.object_id = i.ob[详细]
-
SQL Server把某个字段的数据用一条语句转换成字符串
所属栏目:[MsSql教程] 日期:2020-12-12 热度:75
例如数据 列Name 代码如下:name a b c d 最后的结果 代码如下:a*b*c*d* declare @test table( namevarchar(10)) insert into @testvalues('a'),('b'),('c'),('d'); select distinct (select cast(name asvarchar(2))+'*'from @test for xml path(''))as name[详细]
-
如何在SQL Server 2014中用资源调控器压制你的存储?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:65
在今天的文章里,我想谈下SQL Server 2014里非常酷的提升:现在你终于可以根据需要的IOPS来压制查询!资源调控器(Resource Governor)自SQL Server 2008起引入,但提供的功能还是有所限制:你只能限制CPU时间(这个已经很棒了),还有你能限制查询(从每个[详细]
-
如何在SQL Server中使用随机记录集
所属栏目:[MsSql教程] 日期:2020-12-12 热度:138
今天的文章,我想给你简单介绍下SQL Server里如何随机记录集。 这会引入新的UNIQUEIDENTIFIER数据类型列,SQL Server会在那列上进行物理排序操作。 但是在记录集里列本身没有返回,因为ORDER BY子句在查询SELECT部分逻辑后发生,因此也不会改变记录集。 在SQ[详细]
-
sqlserver数据库优化解析(图文剖析)
所属栏目:[MsSql教程] 日期:2020-12-12 热度:120
p style="text-align: left"下面通过图文并茂的方式展示如下: p style="text-align: left" 一、SQL Profiler p style="text-align: left"事件类 Stored ProceduresRPC:Completed TSQLSQL:BatchCompleted p style="text-align: left"事件关键字段 EventSeq[详细]
-
自增长键列统计信息的处理方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:56
这篇文章通过文字代码的形式讲解了如何处理用自增长键列的统计信息。我们都知道,在SQL Server里每个统计信息对象都有关联的直方图。直方图用多个步长描述指定列数据分布情况。在一个直方图里,SQL Server最大支持200的步长,但当你查询的数据范围在直方图最[详细]
-
简单介绍SQL Server中的自旋锁
所属栏目:[MsSql教程] 日期:2020-12-12 热度:69
为什么我们需要自旋锁? 用闩锁同步多个线程间数据结构访问,在每个共享数据结构前都放置一个闩锁没有意义的。闩锁与此紧密关联:当你不能获得闩锁(因为其他人已经有一个不兼容的闩锁拿到),查询就会强制等待,并进入挂起(SUSPENDED)状态。查询在挂起状[详细]
-
简单介绍SQL Server里的闩锁
所属栏目:[MsSql教程] 日期:2020-12-12 热度:138
在今天的文章里我想谈下SQL Server使用的更高级的,轻量级的同步对象:闩锁(Latch)。闩锁是SQL Server存储引擎使用轻量级同步对象,用来保护多线程访问内存内结构。文章的第1部分我会介绍SQL Server里为什么需要闩锁,在第2部分我会给你介绍各个闩锁类型,[详细]
-
为什么我们需要在SQL Server里更新锁
所属栏目:[MsSql教程] 日期:2020-12-12 热度:71
每次讲解SQL Server里的锁和阻塞(Locking & Blocking)都会碰到的问题:在SQL Server里,为什么我们需要更新锁?在我们讲解具体需要的原因前,首先我想给你介绍下当更新锁(Update(U)Lock)获得时,根据它的兼容性锁本身是如何应对的。 一般来说,当执行U[详细]
-
如何优化SQL语句(全)
所属栏目:[MsSql教程] 日期:2020-12-12 热度:193
高性能的SQL语句会在软件运行中起到非常重要的作用,下面小编把最近整理的SQL语句优化资料分享给大家。 第一: 选择最有效率的表名顺序(只在基于规则的SEO/' target='_blank'>优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM[详细]
-
sql server 2000中禁止创建表(权限设置方法)
所属栏目:[MsSql教程] 日期:2020-12-12 热度:122
最近帮网站管理服务器的时候,发现一个sqlserver数据库中被创建了D99_CMD 、D99_Tmp 、D99_REG,网站安全也做了不少了,不知道哪里出的问题,这里先分享下临时解决方法 1、禁止创建数据库表 在要禁止的数据上,例如(jb51net) 右键 》属性 》权限 2、结合macf[详细]
-
sql server创建临时表的两种写法和删除临时表
所属栏目:[MsSql教程] 日期:2020-12-12 热度:149
--创建、删除临时表 --第二种方式 select count(id) as storyNum,sum(convert(numeric(10,2),case when isnumeric(code)=1 then code else 0 end)) as codeNum,sum((case when isnumeric(realcode)=1 then convert(numeric(10,realcode) else 0.0 end)) as r[详细]