
SQL SERVER
todouwang
熟悉游戏行业所有数据库相关工作,对数据设计、调优、维护,数据仓库等应用都有成功项目经验
展开
-
我,需要努力!
如果从我2005-05-25上班开始计算,到现在,已有三个月了。前两个多月在上海,除了使用了一点sql语法之外。在那里更多的是熟悉了delphi的编程环境,当然,主要是程序的调试了。在那里,做的事太少了。准确地说是我认为有用的事太少了,维护不是我的追求。来之前,我是打算开发的。但工作到快三个月的时候,公司的规模,俺基本清楚了,规模是很小的。我认为经理做事也不很条理。 但我不得不补充一下,经理的确是原创 2005-09-01 13:19:00 · 883 阅读 · 0 评论 -
用sql求一组数据中的3个和最小的数值
/**//*描述:获取一组数据中3个和的绝对值最小的数据 在测试中,输入了有重复值的数据,有重复时,只当作一个数字原题:N个int数,求其中三个数,使得其和的绝对值最小,如{-3,9,-5,90}的三个数是{-3,9,-5},要求分析时间和空间复杂度。*/set nocount on if exists(select 1 from sys.tables where name =原创 2008-04-24 20:55:00 · 3407 阅读 · 0 评论 -
用sql求三个数的最大值
--没见别人这样用,但起码可以达到目的,不知道有没简单的方法,不想建表。 select @data_end_tag=max(tag) from ( select @end_tag_ctc1 as tag union select @end_tag_ctc2 as tag union select @end_tag_cnc1 as tag union select @end_tag_cnc原创 2008-04-24 21:01:00 · 6722 阅读 · 0 评论 -
SQL Server2005中IN运算的一个错误
/**//*测试in运算容易出错的一种情况,就是在子查询中的查询列实际不存在,会返回所有数据*/create table t_1(uid int)create table t_2(id int)insert into t_1select 1union all select 2union allselect 3union all select 4insert into t_2select原创 2008-04-25 19:50:00 · 852 阅读 · 1 评论 -
SQL Server日期格式处理-把14位字符串返回成日期格式
/**//*描述:14位字符串转化成日期格式输出DEMO:select dbo.fn_get_datetime_from_char14(20080304110102)*/create function fn_get_datetime_from_char14(@c_date varchar(14))returns datetimeasbegindeclare @date varchar原创 2008-04-25 15:07:00 · 2455 阅读 · 0 评论 -
给函数设置默认值,取身份证号的年龄
以前写的,在求年龄时,其实还有些符号需要处理,比如$,可以参考下。同时,我对身份证号没没有去全面的研究,只是能在我们环境中满足需求。 关于函数到底是否可以设默认值,我以前看到有些资料上说不能设置。也许是从别的角度考虑吧,只是这个默认值是真的不彻底,起码存储过程有默认值的参数可以不传值,但函数至少要传个default进去。我只是认为默认值是可以设置,但调用时不够理想而已。 --王红波 /原创 2008-05-07 20:32:00 · 1326 阅读 · 0 评论 -
SQL Server2005中的聚集索引必定唯一
前几天看Inside SQL Server Storage关于索引的讲解时,提到说SQL Server2005聚集索引一定是惟一的。如果在创建聚集索引时不使用unique关键字,系统会给重复的索引键加一个4字节长度的附件信息,让索引键惟一。由于自己近期的空余时间不多,学习的资料没来得及系统的整理,所以只提这么点,大家可以查看索引页的具体内容。使用dbcc inc查看索引页信息,应该可以证实这一点。原创 2008-05-07 20:17:00 · 843 阅读 · 0 评论 -
SQL Server2005中删除重复行
以前写的东西,可以看看思路 /**//*删除表中重复行的方法*/if exists(select 1 from sys.tables where name=t_dup) drop table t_dupgocreate table t_dup(id int,age int,name varchar(32))insert into t_dupselect 1,1,auni原创 2008-05-07 20:23:00 · 2304 阅读 · 7 评论 -
cte递归的小例子
/**//* --王红波描述:使用通用表达式实现递归查询查询id=2的所有子节点*/if exists(select 1 from sys.tables where name = test) drop table testcreate table test(id int ,parent_id int)insert into test select 1,0union allse原创 2008-05-07 22:49:00 · 2316 阅读 · 0 评论 -
SQL Server中,计算count(*),优化器会使用聚集索引还是非聚集索引?
如题1、对比cpu资源2、对比IO资源3、从索引存储的角度解释 说明:最近阅读资料时看到了,但具体是哪份资料已经记不清楚了。从索引存储的角度,很容易理解count(*)的计算会采用nonclustered index,但为什么在多个非聚集索引存在时,优化器中选索引号最大的一个非聚集索引?这个问题还没找到确切的资料证明。索引关于这方面知识的整理稍后才能发布。同时也希望大家能够对该原创 2008-05-15 18:38:00 · 960 阅读 · 0 评论 -
SQL Server 文件移动方案
方案一:1. 该 DB进行完整备份.然后到sysfiles中读出需要移动文件的fileid2. 关闭SQL Server .(net stop mssqlserver)3. 将Log (ldf) 文件复制到Local Disk.4. 将SQL Server以单一用户模式开启开启 -> 运行 -> CMD -> 转移到SQL bin 文原创 2008-05-20 21:50:00 · 1102 阅读 · 0 评论 -
用pivot的简单行列转例子
--ProductID OrderMonth SubTotal --1 5 100.00 --1 6 100.00 --2 5 200.00 --2 6 200.00 --2 7 300.00 --3 5 400.00 --3 5 400.00 --set nocount on create table T1(ProductID int ,OrderMo原创 2008-05-21 19:25:00 · 1094 阅读 · 0 评论 -
SQL Server DBA Dashboard
February 29, 2008SQL Server DBA DashboardBy Gregory A. LarsenLast month in my article (Building Custom Reporting Services Reports for SQL Server Management Studio ), I discussed that with SQL Server转载 2008-05-21 23:18:00 · 1559 阅读 · 0 评论 -
解决sql server2005的sp2无法卸载或者重复安装时的相关错误
1、确保有sqlserver support,如果没有,安装上。2、"%ProgramFiles%/Microsoft SQL Server/90/Setup Bootstrap/ARPWrapper.exe /Remove" 或 运行该目录的ARPWrapper.exe 来删除服务。原创 2008-05-21 23:39:00 · 1628 阅读 · 0 评论 -
SQL Server中的count(1)运算,其中的1不是代表第一列
不可否认,order by 1,里面的1的确代表第一列,但count(1)基本等同于count(*)。可以做一个简单的验证,order by 后面跟100,假设该表没有100列,肯定报错的。但count()就不同,里面跟数字,字符串什么的,都是可以的。并且count(1)的结果,跟count(*)相同。而count(第一列)结果未必和count(*)相同。原创 2008-05-17 11:59:00 · 1374 阅读 · 0 评论 -
output返回值在SSIS中获取的方法
/**//*描述:开发中使用了output子句返回已更新数据,并且要在SSIS中获取该值。问题:ouptut子句,只能将相关数据输出到表变量或者表中,要么直接用output返回,那么,我如何用代码读取output直接的返回值?查找相关资料,方法仅仅是将数据存入表变量(output into ...@table)。直接运行带有output子句的sql,可以看到这些数据是可以输出的。原创 2008-05-25 18:33:00 · 1626 阅读 · 0 评论 -
SQL SERVER索引维护与事务日志大小的关系
索引操作的日志记录情况索引操作完整大容量日志简单ALTER INDEX REORGANIZE完全记录完全记录完全记录ALTER INDEX REBUILD完全记录最小限度记录最小限度记录CREATE INDEX完全记录最小限度记录最小限度记录原创 2008-08-18 21:28:00 · 1424 阅读 · 0 评论 -
SQL Server2005维护计划一种错误的处理方式
/**//*-----------------------------问题描述:MsSqlServer2005中,由于计算机名修改或者删除、修改或重建维护计划的误操作引起系统中有无法删除的维护计划,错误提示类似于:“DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突。该冲突发生于数据库"msdb",表"dbo.sysmaintplan_subplans"原创 2008-04-24 20:43:00 · 2224 阅读 · 0 评论 -
SqlServer2005中文本查询的最佳处理方式
注,本文是我早期工作时写的,主要是个思路问题,结论并不合理。这里仅记录我当时的想法和思路,不该以本文的结论处理在线项目了。其实几种处理方法的优劣,跟实际操作数据量以及硬件等环境有很大关系,数据量叫大的时候,like %a%这样的方式相对效率还可以。当然,对于文本处理,全文搜索还有优势,但全文搜索也有一定的局限性,中文的分词方式,的确较复杂,所以具体问题,参考各种方式,还是该具体对待。原创 2008-04-24 20:41:00 · 915 阅读 · 0 评论 -
查找所有的数据库信息
1.查找所有数据库名:select name from master..databases2.查找所有数据库信息:exec sp_helpdb原创 2005-09-01 12:41:00 · 1047 阅读 · 0 评论 -
查找数据库中所有表名
以前就知道exec sp_pkeys @table_name=tablename可以查一个表的关键字信息。还知道select * from sysobjects可以查到这个库中各表的信息。但是,今天逛csdn,看个队伍提了个问题,查找数据库中的字段,晕,我真想不到怎么查,不过说真的,如果让我写。我就对select * from sysobjects这个数据集循环一下,采用query组件的fi原创 2005-09-19 20:33:00 · 2887 阅读 · 1 评论 -
sqlserver中分组查询,条件过滤,排序,写这个sql,我为自己感到骄傲
SELECT top 10 UserID, COUNT(*) AS Expr1FROM MoneyLogWHERE (WriteTime BETWEEN 2005-09-12 AND 2005-09-18) AND (ModeName AND (SourceName IN (10111, 10105, 10102, 10101, 10110, 10107原创 2005-09-19 20:23:00 · 1860 阅读 · 0 评论 -
使用表变量
今天写个统计,原本对表变量只是耳闻,大体知道点意思,今天查联机帮助后觉得比较有用,就在今天实用一下,在"一棵秋天的树"大哥的帮助下,顺里写出来,感觉sql的使用,会了,真的就很简单,而且高效.下面是偶写的个统计:--2005-10-19 21:20:25--desigined by whbo--designed at 2005-10-19set nocount on --节约反馈资源declar原创 2005-10-19 21:35:00 · 1256 阅读 · 0 评论 -
Sql server中的时间相关
无聊中...写个select year(getdate())select month(getdate())select day(getdate())......时分秒自然不同了,select datepart(hour,getdate())select datepart(minute,getdate())select datepart(ms,getdate())具体的使用,下面是sql serve原创 2005-10-20 19:45:00 · 893 阅读 · 0 评论 -
无聊的时候,写个sql,琢磨着解决自己工作中遇到的费时的问题.
平常工作最麻烦的就是游戏玩家的银子丢了之后,我要判断是他断线丢的还是输给别人他自己搞错了。虽然还没有好的思路,还是一直打算写个方便点的程序,节约劳动,今天有空,就写了下,虽然效果还不太好,不过功能上大体满足了。代码如下:--用户银子分析--Designed by whbo--Designed at 2005-10-19--Modified by--Modified atDeclare @intWa原创 2005-10-19 21:39:00 · 1051 阅读 · 0 评论 -
限制同一ip的注册数量
以前看在网站或游戏中有对同一ip注册数量上的限制,现在做来觉得挺容易实现,代码如下:/*Disciption:设置对同个IP注册数量限制,一天同IP最多注册50个Designed By: whboDesigned Time: 2005-10-13Modified By:Modified Time:Example:declare @ResultCount intexec @ResultCount原创 2005-10-19 21:54:00 · 4373 阅读 · 0 评论 -
关于Sql server中的DateAdd
以前看过这个函数,用过DateAdd(month,2,WriteTime)这样的,后来也想过分钟和秒应该可以用,今天写程序需要,就查了下帮助,完整的说明如下:日期部分缩写Yearyy, yyyyquarterqq, qMonthmm, mdayofyeardy, yDaydd, dWeekwk, wwHourhhminutemi, nsecondss, smillisecondms这个表足够说明问原创 2005-10-20 19:18:00 · 1125 阅读 · 0 评论 -
一个四用户信息同步更新的存储过程
不实用,之所以写,一为领导的要求,另外也熟悉下写代码,代码多写点也没什么坏处,并且写了之后发现临时表还挺容易用的,数据量小的时候,并显不出临时表速度不行的问题.代码如下:SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO/*Name:游戏中四人数据同时更新Designed By :whboDesigned At :2005-10-12Modified B原创 2005-10-19 21:43:00 · 1235 阅读 · 0 评论 -
MS SQL SERVER中的字符串分割
--字符串分割Declare @TUserID Table(UserID varchar(50))Declare @chvTestString varchar(1024)Declare @i int,@i_t intDeclare @chvString varchar(50)Set @chvString=Set @chvTestString=1,23,456,6789,43,21Set @原创 2005-10-25 16:32:00 · 1248 阅读 · 0 评论 -
SQL SERVER中数据同步的实现
SQLSERVER中,数据库同步的实现经过测试,可以顺利实现数据库结构的初始化和数据的单向同步(也就是订阅服务器的数据可以及时更新为发布服务器的数据)。准备工作: >>数据的同步中主要考虑的三部分,可以理解成三台主机。发布服务器,分发服务器和订阅服务器;可以从字面的意思理解,要实现的功能实际就是让订阅服务器通过分发服务器保持数据及时地和发布服务器上的数据一致。整个执行过程是这样一来的:原创 2005-11-22 12:15:00 · 5741 阅读 · 2 评论 -
总算能写个可以运行的游标使用了
**************************************************************************************************FETCH FIRST:第一FETCH NEXT:下一FETCH PRIOR:前一FETCH LAST:最后FETCH ABSOLUTE N :N>0 : 从第一行数第N N N=0 : 不提取F原创 2005-11-17 20:56:00 · 987 阅读 · 0 评论 -
统计一个数据库中的每个表的记录数
--varchar可以存8k字符;nvarchar可以存4k字符(UNICODE)DECLARE @chvSqlCmd varchar(8000)SET @chvSqlCmd=SELECT @chvSqlCmd=@chvSqlCmd+SELECT +NAME+,COUNT(*) FROM +NAME+CHAR(13)+UNION+CHAR(13)FROM DBO.SYSOB原创 2005-11-24 11:50:00 · 1485 阅读 · 0 评论 -
存储过程默认参数
create proc test@inta int,@intb int=0asset nocount on begin return @inta+@intbend--demodeclare @intReturnValue intexec @intReturnValue=test 3select @intReturnValueexec @intReturnValue=test 3,2select @原创 2005-12-30 18:58:00 · 1295 阅读 · 0 评论 -
SQL Server索引维护指导
http://database.ctocio.com.cn/tips/69/8078069.shtml SQL Server索引维护指导作者:王红波摘要本文以笔者在实际工作中对SQL Server数据库种索引维护的思路和方法为导向,为大家介绍SQL Server索引维护相关的知识和方法。导言索引在数据库相关工作者的日常工作中占据了很重要的位置,索引需要牵涉到索引创建、优化和维护多方面原创 2008-04-15 19:15:00 · 756 阅读 · 0 评论 -
用TSQL求子串在父串中出现的次数
http://database.ctocio.com.cn/tips/121/8055121.shtml用TSQL求子串在父串中出现的次数 作者:王红波,干露摘要 本文以实例说明网络上常见的求子字符串在父字符串中出现次数的函数中存在的错误以及修改和优化的方法。针对日常工作所需功能,网络上流传着很多已有资源原创 2008-04-15 19:16:00 · 1050 阅读 · 0 评论 -
SQL Server搭建模拟环境进行测试
接触数据库早期写的东西,初学者可以看看。 一、接口部分 SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N[dbo].[PrMatch_Construct]) AND OBJECTPROPERTY(id,NIsPr原创 2008-04-24 20:08:00 · 2173 阅读 · 0 评论 -
IT人员转行写小白文可以么?
http://www.qidian.com/Book/2838198.aspx大约两个时辰,便轮到龙昊和林奇的考核测试了。两人分别进了不同的房间进行测试,分开之前,林奇拍了拍龙昊的肩膀嘱咐道:“龙昊,测试结束就在这里等我,千万别走开了。你就算过不了,我可以学了教你!”“嗯!” 龙昊点了点头,心中却打定主意,一定全力以赴,争取通过。走进房间,面前有一个很低的桌台,原创 2013-06-26 22:56:17 · 1301 阅读 · 0 评论