文章分类 - SQLSERVER
摘要:笔记177 数据库镜像和事务日志传送的都是通过事务日志复制技术来达到这个生产服务器与备份服务器之间的数据同步 1 --数据库镜像和事务日志传送的都是通过事务日志复制技术来达到这个生产服务器与备份服务器之间的数据同步 2 3 -- 4 --有时候出于数据库高可用性的目的,需要在生产服务器之外的地方再部署一台数据库服务器。当生产服务器出现故障不可用时,则可以马上启用这个备用的服务器。故就需要保证生产服务器与备用服务器之间数据的同步。 5 那么SQL Server数据库是通过什么技术来达到这个生产服务器与备份服务器之间的数据同步的呢? 6 简单的说,就是通过这个事务日志的复制来实现数据同步的。具体.
阅读全文
摘要:笔记176 收缩数据库日志文件1 --收缩数据库日志文件2 use yourdbname3 dbcc shrinkfile( '日志文件逻辑名 ',目标尺寸)4 5 USE GPOSDB6 DBCC SHRINKFILE('GPOSDB_log',110)
阅读全文
摘要:笔记175 收集SQLSERVER性能日志的两种方法 1 --收集SQLSERVER性能日志的两种方法 2 --第一种: 3 --性能监视器,Osql.exe运行性能收集脚本 4 --由于出问题的时间不固定,SQL又非常繁忙,收集SQL Trace的话日志很大,不太可行 5 --开销太大,对正常的性能也会有影响。 6 --我们收集性能监视器里的日志,以及用Osql.exe每隔15秒运行一段TSQL脚本,查询 7 --各个关键DMV,将结果输出到文本文件里。 8 9 --脚本:10 DBCC SQLPERF(umsstats)11 SELECT * FROM sys.sysprocesses .
阅读全文
摘要:笔记174 事务的隔离级别 开关与介绍 、应用 1 --事务的隔离级别 开关与介绍 、应用 2 --SET TRANSACTION ISOLATION LEVEL READ COMMITTED 3 --read uncommitted 4 --read committed 5 --repeatable read 6 --snapshot 7 --serializable 8 9 10 --read uncommitted:指定语句可以读取已由其他事务修改但尚未提交的行11 12 --read committed:指定语句不能读取已由其他事务修改但尚未提交的数据。这样可以避免脏读。其他事务可以.
阅读全文
摘要:笔记173 使用游标批量删除Sql Server对象 1 --使用游标批量删除Sql Server对象 2 DECLARE cursorname cursor for select 'drop PROCEDURE '+name from sys.objects where name like 'xx%' and type = 'p' --删除对应的存储过程 3 DECLARE cursorname cursor for select 'drop Trigger'+name from sys.objects where name l
阅读全文
摘要:笔记172 使用函数查出某个数据库的数据库id和数据库名DB_ID() DB_NAME()1 --使用函数查出某个数据库的数据库id和数据库名DB_ID() DB_NAME()2 SELECT DB_ID('gposdb'), DB_NAME(DB_ID('gposdb'))
阅读全文
摘要:笔记171 使用系统视图sys.messages查看系统中定义的错误 1 --使用系统视图sys.messages查看系统中定义的错误 2 SELECT * FROM sys.messages WHERE language_id =2052 AND message_id =515 3 4 5 --不能将值 NULL 插入列 '%1!',表 '%2!';列不允许有空值。%3! 失败。 6 --示例 7 8 --USE GPOSDB 9 --10 --INSERT INTO dbo.SystemPara11 -- ( ParaValue ,12 -- Name...
阅读全文
摘要:笔记170 使用DBCC IND([GPOSDB],systempara,-1) 找到数据表所使用的数据页编号和信息 1 --使用DBCC IND([GPOSDB],systempara,-1) 找到数据表所使用的数据页编号和信息 -1: 显示全部IAM页,数据页, 索引页 也包括 LOB 和row-overflow 数据页。 2013-1-18 2 --.DBCC IND命令来找到数据页id,找到数据页id:219, 3 --这个数据页存放了test_del的数据 4 --dbcc ind(repl_test,test_del,-1)go 5 6 --http://www.cnblogs..
阅读全文
摘要:笔记169 使用@updateusage参数更新sp_spaceused的统计信息1 --使用@updateusage参数更新sp_spaceused的统计信息2 EXEC sys.sp_spaceused @updateusage = 'true' -- varchar(5)
阅读全文
摘要:笔记168 实现白的有人登录过数据库或者改过密码都记录日志的需求 2013-2-6 1 --实现白的有人登录过数据库或者改过密码都记录日志的需求 2013-2-6 2 3 --注意:如果你登录不了数据库,不管是sa还是其他登录用户 4 --这时候要使用DAC连接进去数据库,不用重装 5 --数据库,在SSMS左上角的新建查询那里连接数据库 6 --因为DAC连接只能使用左上角的新建查询,然后删除触发器就可以了 7 USE MASTER 8 GO 9 DROP TRIGGER trg_logon_attempttest ON ALL SERVER 10 GO 11 12 -...
阅读全文
摘要:笔记167 实现CLR存储过程 1 --实现CLR存储过程 2 IF EXISTS (SELECT * FROM sys.procedures WHERE [name]='SayHello') 3 DROP PROCEDURE SayHello 4 GO 5 IF EXISTS (SELECT *FROM sys.assemblies WHERE [name]='SayHello') 6 DROP ASSEMBLY SayHello 7 GO 8 CREATE ASSEMBLY SayHello 9 FROM 'D:\C# pratice\SayHell
阅读全文
摘要:笔记166 时间差转换 1 --时间差转换 2 DECLARE 3 @dt1 datetime, 4 @dt2 datetime 5 ; 6 SELECT 7 @dt1 = '2012-07-27 11:11:00', 8 @dt2 = '2012-07-30 21:00:00' 9 ;10 SELECT11 diff_day = CONVERT(int, diff),12 diff_time = CONVERT(varchar(10), diff, 108)13 FROM(14 SELECT15 dif...
阅读全文
摘要:笔记165 生成随机数的5种方法Rand() random 1 --生成随机数的5种方法Rand() random 2 3 Method 1 : Generate Random Numbers (Int) between Rang 4 -- Create the variables for the random number generation 5 DECLARE @Random int; 6 DECLARE @Upper int; 7 DECLARE @Lower int 8 9 -- This will create a random number between 1 and 999..
阅读全文
摘要:笔记164 生成随机数rand()还有newid()发布订阅里面的msrepl_tran_version checksum 1 --生成随机数rand()还有newid()发布订阅里面的msrepl_tran_version checksum 2 --含小数值的随机正数 3 select rand()*100 4 --随机正整数 5 select cast((rand(5)*100) as int) 6 7 --随机正整数 8 select ABS(CHECKSUM(NEWID()))%10 9 --随机正负整数10 select CHECKSUM(NEWID())%1011 12 SELE.
阅读全文
摘要:笔记163 生成600条循环数据行 1 --生成600条循环数据行 2 INSERT INTO T 3 SELECT 'aa', 'bb' UNION ALL 4 SELECT 'cc' ,'dd' 5 GO 300 6 SELECT * FROM t 7 8 --生成300条 9 INSERT INTO T DEFAULT VALUES10 GO 30011 SELECT * FROM t
阅读全文
摘要:笔记162 设置隐式事务与显式事务IMPLICIT_TRANSACTIONS 1 --设置隐式事务与显式事务IMPLICIT_TRANSACTIONS 2 --http://technet.microsoft.com/zh-cn/library/ms187807.aspx 3 --语法 4 --SET IMPLICIT_TRANSACTIONS { ON | OFF } 5 6 --只是对当前进程(查询窗口)有效,当你关闭了这个查询窗口之后在另外一个 7 --查询窗口里修改不加COMMIT TRAN照样可以提交 8 9 10 --如果设置为 ON,SET IMPLI...
阅读全文
摘要:笔记161 设置数据库离线,在线1 --设置数据库离线,在线2 ALTER DATABASE GPOSDB SET OFFLINE WITH ROLLBACK IMMEDIATE3 ALTER DATABASE GPOSDB SET ONLINE
阅读全文
摘要:笔记160 删除重复记录没有大小关系时,处理重复值中的方法 1 --删除重复记录没有大小关系时,处理重复值中的方法一 2 --链接:http://topic.csdn.net/u/20080626/00/43d0d10c-28f1-418d-a05b-663880da278a.html 3 --3、删除重复记录没有大小关系时,处理重复值中的方法一 4 USE tempdb 5 6 IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'#A表') AND type in (N'U'))
阅读全文
摘要:笔记159 如何将SQL数据库设定为单用户模式 1 --如何将SQL数据库设定为单用户模式: 2 3 --单用户模式指定一次只有一个用户可访问数据库,该模式通常用于维护操作。 4 5 --注意: 6 --如果其他用户在您将数据库设置为单用户模式时连接到了数据库,则他们与数据库的连接将被关闭,且不发出警告。 7 -- 8 --即使设置此选项的用户已注销,数据库仍保持单用户模式。这时,其他用户(但只能是一个)可以连接到数据库。 9 10 --命令行单用户模式在CMD下输入: 11 --首先进入SQL Server的BINN路径,比如 C:\Program Files\Mic...
阅读全文
摘要:笔记158 如果只有数据文件,而没有事务日志文件,那么附加数据库的时候可以使用ATTACH_REBUILD_LOG 2012-2-191 --如果只有数据文件,而没有事务日志文件,那么附加数据库的时候可以使用ATTACH_REBUILD_LOG 2012-2-192 --你只下载了数据文件,没有LDF文件,那么附加的时候选择使用ATTACH_REBUILD_LOG。3 USE [master]4 GO5 CREATE DATABASE AdventureWorks ON6 ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQ
阅读全文