
SQL应用脚本
文章平均质量分 76
starseeker7
这个作者很懒,什么都没留下…
展开
-
去掉identity列属性范例
当我们需要去掉一个列上的identity属性时。我们需要做的就是:创建一个完全一样的新表,再将数据转移仅新表中,删除旧表。重命名新表。下面就是一个此过程的范例,值得注意的是,当旧表数据量很大时,为了避免大批量的数据转移我们采用了关键字swich to这大大节约了性能消耗成本 alter table dbo.RemoveIdentiyTest SWITCH to dbo.tmp_Rem原创 2013-01-30 10:57:23 · 1999 阅读 · 0 评论 -
获取同步链agent堵塞的表以及具体条数
--用于详细查看当前实例下,受到堵塞的 表名、 命令行数、影响行数--获取堵塞的影响行数 SELECT [article_id] ,[agent_id] ,[UndelivCmdsInDistDB] ,[DelivCmdsInDistDB] FROM [distribution].[dbo].[MSdistribution_status]o原创 2013-03-09 17:02:12 · 623 阅读 · 0 评论 -
获取SP运行花费时间最长前10位/TSQL语句已经运行了多久
获取SP运行花费时间最长前10位SELECT TOP 10 a.object_id, a.database_id,schema_name(obj.schema_id) as 'prc schema', OBJECT_NAME(a.object_id, database_id) 'proc name',a.cached_time, a.last_execution_time, a.tot转载 2013-02-19 15:26:15 · 735 阅读 · 0 评论 -
获取当某个表所有索引使用情况
用于分析是否有不被使用的索引DECLARE @dbName SYSNAME ,@schemaName SYSNAME ,@ObjectName SYSNAME ,@sql NVARCHAR(max)SELECT @dbName='DBName' ,@schemaName='schemaName' ,@ObjectName='tbName'SET @sql原创 2013-03-02 08:50:31 · 599 阅读 · 0 评论 -
查询实例中每个DB中所有表的详细信息
-- =====================================================-- Script for:-- table size information query.-- single database, can Ignore schema name-- =================================================原创 2013-01-30 14:22:41 · 583 阅读 · 0 评论 -
关于获取服务器基本信息SQL
SET NOCOUNT ONIF NOT EXISTS( SELECT * FROM sys.configurations with(nolock) WHERE name like 'xp_cmdshell' AND value_in_use = 1)BEGIN EXEC sp_configure 'sh原创 2013-09-20 08:46:56 · 753 阅读 · 0 评论 -
获取MSSQL当前Server的CPU 与 memory使用率
工作时候遇到用户需要查询资源使用情况没有远程桌面权限就取原创 2014-05-14 16:26:44 · 3488 阅读 · 0 评论 -
获取数据库缓存中的执行计划
我们经常会遇到同一个--获取包含固定语句的所有缓存中的执行计划use master go select c.plan_handle, c.usecounts, c.cacheobjtype, c.objtype, t.text, qp.query_plan, c.size_in_bytes as '对象所耗费的字节' ,*from sys.dm_exe原创 2014-06-06 17:31:02 · 689 阅读 · 0 评论 -
查看buffer pool使用
--1.Buffer Pool的内存主要是由那个数据库占用 :SELECT cast(count(row_count)*8.0/1024.0 as decimal(12,2)) as cached_pages_mb,CASE database_id WHEN 32767 THEN 'ResourceDb' ELSE db_name(database_id)转载 2013-02-17 16:57:47 · 668 阅读 · 0 评论 -
将表中数据导出为insert脚本
有时候根据业务需求我们需要把一个表的数据,跨服务器导入到其他同结构表中,我们一般会推荐采用bcp,SSIS,同步链,link server等办法。但是在数据量比较少,目的端又无同步链或者link server的时候,其他方式或许显得略为繁琐下面是一个网上看到的比较方便的将表中数据转换为insert脚本的SQL,保存再这里作为参考原帖地址:http://raresql.com转载 2014-06-17 11:15:32 · 886 阅读 · 0 评论 -
关于MSSQL误删/误更新数据后的回滚
原帖地址:http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/针对被delete命令误删的数据回滚操作,但要注意该办法对single模式下用途不大因为这个办法是基于对sys.fn_dblog(NULL, NULL) 的解析作为起点的若delete命令的日志已经被截断,无法被sys.fn_dbl转载 2014-02-07 17:37:12 · 6190 阅读 · 0 评论 -
T-SQL之变量导致索引无效/何谓SQLSERVER参数嗅探
关于变量导致索引无效的情况,在使用工作中其实经常遇到,我看到一篇写的不错的文章就转载过来丰富我的收藏噶。转载自:http://www.cnblogs.com/slade/archive/2012/04/29.htmlT-SQL之变量导致索引无效 (一)问题提出1,在开发中是否遇到一个情况,就是在where后写明具体值时可以用到索引,使用变量时却不行了呢?2,是否转载 2014-03-12 08:40:57 · 2998 阅读 · 0 评论 -
detach_AllDB
jiUSE [master]GO--Detach database SET NOCOUNT ON DECLARE @DbName sysnameDECLARE Cur_Dtch CURSOR LOCAL STATIC FORWARD_ONLY READ_ONLYFOR SELECT name FROM sys.databases WITH (NOLOCK)原创 2014-08-22 09:29:31 · 567 阅读 · 0 评论 -
TSQL Parser
我们在进行TSQL开发或脚本检查时,经常因为代码过多,又不太可能花费太多时间反复检查,导致违反编码规范的脚本未被修正.这种情况下,我们就需要通过程序,对脚本通过程序解析,尽量排除一些常见的,易于程序发现的问题。这时我们就需要对TSQL语法进行语义解析工作,众所周知这时一个非常困难的工程,还好微软提供了专门用于TSQL解析的类库。下面将简述两种常见的语句解析类库的使用方法原创 2016-06-08 19:42:30 · 1053 阅读 · 0 评论 -
察看当前实例每个DB的table大小信息/察看某个DB中包含table大小信息
-- =====================================================-- Script for:-- table size information query.-- single database, can Ignore schema name-- =================================================原创 2013-02-26 09:23:50 · 512 阅读 · 0 评论 -
如何监测谁用了SQL Server的Tempdb空间?
Tempdb系统数据库是一个全局资源,供连接到 SQL Server 实例的所有用户使用。在现在的SQL Server里,其使用频率可能会超过用户的想象。如果Tempdb空间耗尽,许多操作将不能完成。下面是3种 常见的 tempdb使用对象用户对象(user_object_reserved_page_count)用户对象由用户显式创建。这些对象可以位于用户会话的作用域中转载 2013-02-17 15:17:27 · 438 阅读 · 0 评论 -
job check running查看当期那JOB是否正在运行
USE msdbGOdeclare @Job_Name sysnameset @Job_Name='JobName'DECLARE @xp_results TABLE (job_id UNIQUEIDENTIFIER NOT NULL, last_run_date INT原创 2013-01-30 11:09:33 · 756 阅读 · 0 评论 -
查询一个JOB是否存在
use msdbgoselect j.name as JOB_Name,* from dbo.sysschedules S with(nolock) inner join dbo.sysjobschedules SCH with(nolock) on SCH.schedule_id=S.schedule_id inner join dbo.sysjobs J with(nolock原创 2013-01-30 11:23:16 · 453 阅读 · 0 评论 -
创建DB
这是一个融合:创建规范目录,DB,login,user,添加角色use masterGODECLARE @db sysname ,@flag_run INT ,@login SYSNAME ,@prd NVARCHAR(50);SELECT @db = 'DBName' ,@login = 'LoginName' ,@prd = N'PWD' ,@flag_原创 2013-01-30 08:54:02 · 761 阅读 · 0 评论 -
查看指定spid的脚本当前运行情况和状态
USE MasterGOdeclare @spid int;select @spid = 419--null:all ; ;WITH DATA(spid,blockRelationship,blocked,spidLevel,hostname,program_name,loginame,login_time,BlockDuration,Status,sqlText,Memo原创 2013-01-30 10:42:08 · 1158 阅读 · 0 评论 -
通过MSSQL查询当前硬盘数天内发生修改过的文件
DECLARE @disk varchar(3), @date datetime--EXEC sp_configure 'show advanced options', 1;--RECONFIGURE;--EXEC sp_configure 'xp_cmdshell', 1--RECONFIGURE;--EXEC sp_configure 'show advanced optio原创 2013-01-30 14:19:10 · 536 阅读 · 0 评论 -
通过脚本获取发生错误的同步链接
use distribution godeclare @xact_seqno varbinary(16)declare @xact_seqno_varchar varchar(30)declare @error_text varchar(1024)declare @command_id intdeclare @command nvarchar(max) declare @error原创 2013-01-30 14:46:07 · 409 阅读 · 0 评论 -
查看死锁
--Method 1 --查看线程的情况 select cpu,convert (smallint, l.req_spid) as spid ,coalesce(substring (s.loginame, 1, 20),'') as loginame ,coalesce(substring (s.hostname, 1, 30),'') as hostna原创 2013-01-30 10:45:32 · 352 阅读 · 0 评论 -
查询某一个时间段,是否会有JOB会运行
use msdb godeclare @beginday varchar(10)declare @begintime varchar(9)declare @endday varchar(10)declare @endtime varchar(9)declare @needtoRun datetimedeclare @dayrun_sub intdeclare @Begindate原创 2013-01-30 11:24:59 · 787 阅读 · 0 评论 -
查看当前数据库中的表哪些包含同步链
use distribution go SELECT source_Server=@@SERVERNAME ,source_db =A.publisher_db, source_Object_schema =A.Source_owner,source_Object_name=A.source_object, destination_Server=srv.name,dest原创 2013-01-30 11:26:52 · 457 阅读 · 0 评论 -
删除某个具体同步链
USE masterGOSET NOCOUNT ONDECLARE @pubinfo_for_drop TABLE( id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, publication_id int, publication SYSNAME, pub_server SYSNAME, pub_db SYSNAME, pub_sch原创 2013-01-30 14:01:08 · 418 阅读 · 0 评论 -
权限赋予
MSSQL中权限存在三种方式1、login设置server roles2、user设置user roles3、user通过gant/deny对DBobject进行一一权限授予或拒绝第一种方式一般我们在给予一个login高权限时使用,比如我们要授予一个用户sa级别权限可以使用EXEC master..sp_addsrvrolemember @loginame = N'Logi原创 2013-01-30 10:25:07 · 957 阅读 · 0 评论 -
批量还原数据库
--该脚本通过输入一个路径,来还原一个路径下所有的数据备份文件,----脚本运行前作业-------------------------------------------------------------------------------------use master goEXEC sys.sp_configure N'show advanced options', N'1'原创 2013-01-30 10:49:26 · 1832 阅读 · 1 评论 -
解决MSSQL不支持分布式(linked server)调用用户自定义函数的解决办法
MSSQL并不支持用户自定义函数调用linked server查询,它无法识别链接服务器部分但我们可以采用其他方式,替换无法被解析的linked server部分内容 1、采用Openquery替代 Select * from Openquery(newsql,'select temptable.dbo.F1(10)') 2、采用sp_executesql替换原创 2013-01-30 14:34:06 · 1177 阅读 · 0 评论 -
print超过长度的字符串
在SSMS中print会自动截断varchar超过8000.nvarchar(4000)的字符串而select出的结果粘贴又会去掉换行符,可读性很低,下面脚本将解决这个问题。declare @var varchar(max)=''declare @tb table(id int identity(1,1), Dsc nvarchar(max))select @var='原创 2013-02-01 09:39:40 · 1444 阅读 · 0 评论 -
部署调用webservice的clr
参考:http://www.cnblogs.com/doll-net/archive/2009/10/16/SQL_Server_2005_CLR_Invoke_Web_Service.htmlhttp://www.cnblogs.com/jaxu/archive/2009/03/18/1415358.html--部署clr访问webservice--打转载 2016-06-08 19:44:42 · 776 阅读 · 1 评论