
SQL Server
文章平均质量分 59
ylqmf
这个作者很懒,什么都没留下…
展开
-
MS-SQLServer 2000 T-SQL 交叉报表(行列互换) 交叉查询 旋转查询
在MS-SQLServer 2005 中,使用 case when then else end 语句,来实现行列转换. 下面以学生成绩表来举例:id姓名 科目 成绩1 张三 语文 602 张三 数学 653 张三 外语 704 李四 语文 805 李四 数学 906 李四 外语 857 王五 语文 708 王五 数学 719 王五 外语 7510 赵六 语文 6411 赵六 数学 67原创 2009-08-12 14:40:00 · 7118 阅读 · 8 评论 -
SQL Server中六种数据移动的方法
1.通过工具DTS的设计器进行导入或导出 DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动。在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tas转载 2010-01-14 17:46:00 · 740 阅读 · 0 评论 -
SQLServer 表查询中的 合并查询 合集 差集 交集
use tempdb go if (object_id (t1 ) is not null ) drop table t1 if (object_id (t2 ) is not null ) drop table t2 go create table t1 (a int )insert into t1 select 1 union select 2 union select 3 creat转载 2010-01-11 10:09:00 · 5508 阅读 · 0 评论 -
SQLServer 数据库日志文件(LDF)损坏后 补救方法
以前经常遇到数据库日志文件损坏,或者丢失的情况,今天将解决方案写下来,以后别人再问起就给他个链接,多方便啊.呵呵: 1.新建一个同名的数据库2.再停掉sql server(注意不要分离数据库)3.用要附加的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据原创 2010-01-11 12:59:00 · 1987 阅读 · 0 评论 -
看看DBA应该具备怎样的素质
近年来,我一直在和数据库管理员打交道,并直接面试了很多DBA职位。本文想概括一下IT行业对DBA的要求,以及国内DBA的新资现状。可以肯定地说,做一个高级DBA是很不错的职业。如果你打算成为一名DBA,那么希望本文起到抛砖引玉的作用。 近年来,我一直在和数据库管理员打交道,并直接面试了很多DBA职位。本文想概括一下IT行业对DBA的要求,以及国内DBA的新资现状。可以肯定地说,做一个高级DBA是转载 2010-01-06 12:52:00 · 1439 阅读 · 0 评论 -
在Windows Server 2008+SQLServer2008环境下解决:Windows 不能在 本地计算机 启动 SQLServer
新装了sql server 2008,第二天早上发现sqlserver 服务没法起来。当时还没有反应过来,天真的去服务里手动启动SQLServer2008服务:查看系统日志如下: 再用sqlserver自带的日志文件查看器查看sqlserver日志,出错信息如下: 日期 2009-3-26 15:29:19 日志 已加载的日志文件 (原创 2010-01-08 09:11:00 · 12314 阅读 · 0 评论 -
SQL Server DBA 的工作清单
有许多不同类型的数据库管理员。 一些类型的数据库管理员致力于于开发领域,而其他的一部分更重视数据库性能的调整以及仍然有一部分数据库管理员则致力于管理SQL Server的业务。 依据数据库管理员的工作环境不同,他们将执行一定数量的不同的任务。为了区分所有不同的任务,数据库管理员可能要执行我清单上所列的任务。 我的清单上包括许多不同类型的任务。 我将这些任务入分类为了7个不同方面: 配置、数据转载 2010-01-06 12:45:00 · 742 阅读 · 1 评论 -
DBA日常sql列表
--监控索引是否使用alter index &index_name monitoring usage;alter index &index_name nomonitoring usage;select * from v$object_usage where index_name = &index_name;--求数据文件的I/O分布select df.name,phyrds,p转载 2010-01-05 15:47:00 · 829 阅读 · 0 评论 -
使用NEWSEQUENTIALID解决GUID聚集索引问题 SQLServer数据表主键的另一个方案
UNIQUEIDENTIFIER做主键(Primary Key)是一件很方便的事情,在数据合并等操作中有不可替代的优势但是由于普通的GUID的分散性使得如果主键加上聚集索引(Clustered Index)会导致在插入记录时效率大大降低SQL SERVER 2005中新增了一个NEWSEQUENTIALID的函数,MSDN的解释是:在指定计算机上创建大于先前通过该函数生成的任何 GUID 的 GU转载 2010-01-05 16:35:00 · 3600 阅读 · 0 评论 -
SQLServer 维护索引实现查询优化
索引分为两大类:聚集索引和非聚集索引一、聚集索引当数据表中的一列被确定为主键后,SQLServer会自动为它建立聚集索引,因为聚集索引是标识每个记录行的键,所以它将被应用到每个查询中.二、非聚集索引非聚集索引的情况就比较复杂了,因为它是相对于表独立组织的,在SQLServer中有单独的结构来存储非聚集索引. 有一点是要注意的,不要代替查询优化器去指定某个索引,DBA应该想办原创 2010-03-10 16:06:00 · 7433 阅读 · 0 评论 -
SQLServer 优化SQL语句:in 和not in的替代方案
原文出处:http://www.cnblogs.com/luoht/archive/2010/03/01/1676049.html用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。 但是用IN的SQL性能总是比较低的,从SQL执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: SQL试图将其转换成多个表的连接,如果转换不成功则先执行I转载 2010-03-12 14:08:00 · 4933 阅读 · 1 评论 -
SQLServer 聚集索引优化方案
一、主键与聚集索引并不是一对一匹配的一般情况下我们都认为,聚集索引和主键是相互匹配的,因为只要你在SQLServer表中定义了一个主键,那么SQLServer会为这个主键自动添加聚集索引.但是,如果你先在表中基于任意一列建立聚集索引,然后再选择另一列作为主键,这时,这个SQLServer将会基于这个主键建立一个唯一非聚集索引.二、聚集索引会被应用到每个查询中一个SQLServer表内,原创 2010-03-11 13:32:00 · 8657 阅读 · 0 评论 -
SQLServer 最常用的索引字段(通用索引字段)
一、SQLServer 通用索引字段 1、Primary Keys 主键 2、Foreign Keys 外键 3、支持SELECT、INSERT、UPDATE和DELETE命令的字段 :(1)、INNER JOIN (2)、RIGHT | LEFT OUTER JOIN (3)、WHERE (4)、ORDER BY (5)、GROUP BY (6)、HA原创 2010-03-09 17:25:00 · 9611 阅读 · 0 评论 -
将小写金额转换为中文大写的SQL函数
CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,2))RETURNS varchar(100) WITH ENCRYPTION --加密ASBEGIN--版权所有:pbsql DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int SET @n_d原创 2009-12-22 13:35:00 · 907 阅读 · 0 评论 -
重新生成 SQL Server 2008 实例的系统数据库
<br />当sqlserver 实例中的 master数据损坏时 需要还原master数据,但是有些情况下master库的损坏导致sqlserver实例无法运行,只能先重新生成系统数据库<br />一、重新生成 SQL Server 2008 实例的系统数据库: <br />将 SQL Server 2008 安装介质插入到磁盘驱动器中,或者在本地服务器上,从命令提示符处将目录更改为 setup.exe 文件的位置。在服务器上的默认位置为 C:/Program Files/Microsoft SQL Se原创 2010-07-08 13:23:00 · 6597 阅读 · 0 评论 -
sqlserver 备份数据库 按时间命名备份文件
@Database是需要备份的数据库名,@Path是备份目录注意最后一个"/"use mastergodeclare @Database nvarchar(256),@Path nvarchar(2048)select @Database=N'AdventureWorks',@Path=N'D:/TDDOWNLOAD/'declare @sql nvarchar(max)select @sql =N'BACKUP DATABASE '+@Database+N' TO DISK =原创 2010-07-08 16:04:00 · 5297 阅读 · 3 评论 -
Sqlserver 2005 使用T-SQL语句 导出数据到文本文件 目前我自己总结的最全的
/******* 导出到excel EXEC master..xp_cmdshell ’bcp SettleDB.dbo.shanghu out c:/temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""’/*********** 导入Excel SELECT * FROM OpenDataSource( ’Microsof转载 2010-01-14 17:41:00 · 3752 阅读 · 1 评论 -
SQL Server 工作内容(认知图)
原创 2011-11-17 19:10:34 · 1206 阅读 · 1 评论 -
ADO.NET ASP.NET 将 SQLDatareader 转换成 List
/// /// 模型对象组装类 /// public class Fabricate { /// /// 判断某列是否存在并且有无数据 /// /// /// /// /// public static bool ReaderExists(System.Collections.Hashtable table,原创 2010-06-12 14:19:00 · 5564 阅读 · 6 评论 -
关于分页的讨论 for 小猴
====================================首先是小猴童鞋提出了两个分页查询==============================然后我提出第二个查询的正确写法===============================小猴说他的one效率高,我就提出了新的查询,他说他改过的更快====================但是我的结论是,我的提出的查询效率和他修改后的是一样的都比one要高原创 2010-06-05 12:27:00 · 718 阅读 · 3 评论 -
sqlserver 2005 高可用性架构 日志传送
sqlserver2005数据库高可用性的解决方案目前有四种 1 windows集群实现sqlserver双机热备 2 sqlserver 数据库镜像 3 sqlserver日志传送 4 sqlserver复制下面演示日志传送的配置过程首先介绍下环境: 这次演示要将 YUANLQ/SQLSERVER2005实例下的 AdventureWorks数据库备份到./SQLSERVERcopy下面,可以看到当前备份实例下面只有一个advw用户数据库1 右键单击要在日志传送配置中用作主数据库的数据库,然后单击“属性”原创 2010-07-19 14:42:00 · 2593 阅读 · 1 评论 -
sqlserver 2005 分布式架构 对等事务复制
一、为什么要使用对等事务复制首先要说明的是使用sqlserver复制的目的使用sqlserver数据库复制的目的,就是要将数据库压力由一台服务器分散到多台服务器,通过一台sqlserver服务器作为主机,将主数据库中的数据,复制到其他N台备份服务器上,从而实现分布式查询,大大降低了主服务器的压力.在图一中,右面的拓扑结构就是典型的复制,写入的压力,全都在B这台服务器上,读取的压力平衡到两台机器上 图一综上所述,使用sq原创 2010-07-17 17:11:00 · 4073 阅读 · 3 评论 -
Microsoft SqlServer 2005 通用分页 存储过程
本来我是不赞成使用通用存储过程的,主要是因为根据表结构来定制分页查询不用动态的拼SQL,这样才是真正的高效,而且只要写过一个,那么再有新需求的时候,小范围改动几处就ok了。但总是有人向我讨要或者讨论通用存储过程,没办法,被逼无奈,良心丧与困境。木有找到T-SQL代码编辑器-- =============================================-- Autho原创 2010-05-15 23:55:00 · 1188 阅读 · 7 评论 -
SqlServer 完整备份与还原
创建数据库与建表等操作请参考这里下图是备份前的数据情况,其中customer表中一共四条记录下面开始执行完全备份备份之后可以看到备份目录下已经生成的bak文件下面对customer表插入一天备份后的数据,用来演示灾难发生时,数据库中宝贵的数据丢失郝七就是最后一次备份后,灾难发生前产生的数据灾难是多种多样的,最后导致的结果,使得DBA不得不用最后一次备份进行还原在这次灾难过后,我们损失了一条数据,直接的损失就是失去一位客户,而在现实生产环境中,实际产生的损失是无法估量的。使用完全备份很简单,要想在灾难发生时将原创 2010-07-12 23:09:00 · 4617 阅读 · 1 评论 -
SqlServer 创建数据库 使用多个文件组和物理磁盘
现在服务器的瓶颈主要是15000转的硬盘无法满足日益增长的I/O需求,这时创建数据库时要尽量将数据库的I/O压力分解到多个磁盘中。use mastergoif DB_ID(N'care365') is not null--如果数据库存在,则删除它drop database care365gocreate database care365on primary(name=care1,filename='C:/database/care365.mdf',--主文件组放在C盘下原创 2010-07-09 22:27:00 · 6152 阅读 · 0 评论 -
sqlserver 设置数据库恢复模式
Enterprise Edition 有三种恢复模式 FULL | BULK_LOGGED | SIMPLE use mastergoalter database AdventureWorksset RECOVERY FULL--完全gouse mastergoalter database AdventureWorksset RECOVERY SIMPLE--简单gouse mastergoalter database AdventureWorks原创 2010-07-09 17:39:00 · 3219 阅读 · 0 评论 -
sqlserver 事务日志备份
前提条件,数据库恢复模式 不能为 SIMPLE ,并且有基准备份.use master go declare @Database nvarchar(256),@Path nvarchar(2048) select @Database=N'AdventureWorks',@Path=N'D:/TDDOWNLOAD/' declare @sql nvarchar(max) select @sql =N'BACKUP LOG '+@Database+N' TO DI原创 2010-07-09 17:36:00 · 1215 阅读 · 0 评论 -
sqlserver 差异备份
use master go declare @Database nvarchar(256),@Path nvarchar(2048) select @Database=N'AdventureWorks',@Path=N'D:/TDDOWNLOAD/' declare @sql nvarchar(max) select @sql =N'BACKUP DATABASE '+@Database+N' TO DISK = '''+@Path+@Databa原创 2010-07-09 16:35:00 · 1121 阅读 · 4 评论 -
sqlserver SA帐户的处理
<br />以前管理数据都是简单的将SA帐户禁用,然后根据不同的项目设置不同的用户,分配相应的权限,对应的数据库.<br />但是当sqlserver实例发生问题的时候,因为SA帐户是不可能被删除的,使之成为DBA最后的王牌.<br />正确的做法是:为SA用户分配强密码,并定期修改.<br /><br />做个标记,从此谨记.<br />http://topic.youkuaiyun.com/u/20100708/09/c2bbf8eb-6625-443e-902c-1a2e79763ed2.html?89170原创 2010-07-08 13:30:00 · 847 阅读 · 0 评论 -
SQLServer 2005 中的类型 与 C# 中的类型 对应 关系
原创 2009-12-22 10:54:00 · 1356 阅读 · 0 评论 -
重建 SQLServer 索引的重要性!
原文转自:http://dev.youkuaiyun.com/develop/article/71/71778.shtm 大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server要进行表格扫描读取表中的每一个记录才能找到索要的数据。索引可以分为簇索引和非簇索引,簇索引通过重排表中的数据来提高数据的访问速度,而非簇索引则通过维护表中的数据指针来提高数据的索引。转载 2010-02-26 14:02:00 · 1145 阅读 · 0 评论 -
SQL Server索引管理之六大铁律
原文转自:http://tech.it168.com/a2009/0218/265/000000265868.shtml索引是以表列为基础的数据库对象。索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。通过索引,可以加快数据的查询速度和减少系统的响应时间;可以使表和表之间的连接速度加快。 但是,不是在任何时候使用索引都转载 2010-02-26 13:48:00 · 878 阅读 · 1 评论 -
sql server T-SQL 区分字符串大小写 的两种方法
方法一写一个函数 --区分字符串大小写的string比较函数CREATE FUNCTION [dbo].[StrComp](@Str1 NVARCHAR(50),@Str2 NVARCHAR(50))RETURNS INTEGER--1为相等其返回值为不相等ASBEGINdeclare @hashcode1 varbinary(32)declare @hashcode2 varbina原创 2009-12-09 15:21:00 · 2808 阅读 · 0 评论 -
SQL数据库表坏了的手动恢复方法
今天接到客户电话,说操作数据无法保存。经过分析,发现他的数据库已经有5G多的大小,而最终发现有张表的索引出错了,用DBCC CHECK也无力回天。每次用select * from ln003082 语句查询,都报如下错误:服务器: 消息 605,级别 21,状态 1,行 1试图从数据库 ln_fl0125 中提取的逻辑页 (1:629904) 属于对象 869578136转载 2010-01-28 13:36:00 · 1992 阅读 · 0 评论 -
sql server T-SQL 插入临时表时使用自增长键
select identity(int,1,1) id ,* into #tmp from tablename 有一点要注意,不能将 tablename这个表中的自增长列一并插入到临时表中. 如果是SQLServer 2005 可以使用rownumber select ROW_NUMBER() OVER (order by Id)as [index],a.id as Id原创 2009-11-30 14:06:00 · 7293 阅读 · 0 评论 -
SQLServer 2005 集群的配置 实现双机热备
MS Sqlserver 2005 集群是指数据库高可用性集群,能实现通常所说的“双机热备”,即当一台服务器停掉数据库服务可以自动转移到另一台服务器。 环境要求: 1、windows 2003 server企业版 2、MS Sqlserver 2005 企业版 3、三台服务器(一个域控,两台集群服务器Node1和Node2,双网原创 2010-01-26 13:31:00 · 4645 阅读 · 1 评论 -
SqlServer2005/2008备份模式与恢复模式 3copy数据库文件,另一种备份与恢复方式
SQL Server允许使用简单的Copy方式来备份数据库的数据和日志文件吗?答案是肯定的。但前提是数据文件不再被SQL Server使用。当数据库处于活动状态,你不能简单的copy它的文件,推荐方式是使用完整数据库备份(备份模式)。这是因为数据库的数据和日志文件不能处于非一致状态。这会导致仅仅在事务日志中被修改的数据页可能无法写入数据文件。这也会影响进程中的事务无法提交或是回滚已经写入文件中原创 2010-01-20 23:03:00 · 1340 阅读 · 0 评论 -
SqlServer2005/2008备份模式与恢复模式 1恢复模式
在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模式: Simple(简单), full(完整), bulk-logged(批量日志)。 下面这条语句可以显示出所有在线数据库的恢复模式:SELECT name, (SELECT DATABASEPROPERTYEX(name, RECOVERY)) RecoveryModel FROM master..sy原创 2010-01-20 22:43:00 · 5315 阅读 · 4 评论 -
SqlServer2005/2008备份模式与恢复模式 2备份模式
假设在下面几个时间段中,一个数据库积累插入了如下数据: 1.完整数据库备份故名思意,完整数据库备份包括完整的数据库信息。它包括数据库的数据文件和备份结尾的部份活动事务日志。 完整备份基本语法如下:BACKUP DATABASE AdventureWorks TO DISK = g:/backups/AdventureWorks.bak2.差异性数据库备份原创 2010-01-20 22:50:00 · 1804 阅读 · 2 评论 -
SQL Server 2005 启用 xp_cmdshell 使用T-SQL语句导出数据到文件
最近在搞linux和MySQL,想把SQLServer2005的数据导入到MySQL中,这个操作很简单.但是手欠,非要写T-SQL语句完成;还好在网上搜到xp_cmdshell调用bcp实现,天真的就到数据库中实验,结果可想而知,xp_cmdshell操作的功能如此强大,没有理由随意开启它. exec master..xp_cmdshell ’bcp "库名..表名" out "原创 2010-01-14 17:29:00 · 3185 阅读 · 0 评论