• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Kevin Gao

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  数据库

上一页 1 2 3 4 下一页

 
SQL SERVER 2008自动发送邮件(完整版)
摘要:这两天都在搞这个东西,从开始的一点不懂,到现在自己可以独立的完成这个功能!在这个过程中,CSDN的好多牛人都给了我很大的帮助,在此表示十二分的感谢!写这篇文章,一是为了巩固一下,二嘛我也很希望我写的这点小东西能帮助遇到同样问题的朋友们!当然这里有一部分是从网上的摘录的实现一个类似于注册平台的功能:比如注册了一个用户,就会向注册邮箱里发送一封邮件。首先是要搭建一个自动发送邮件的平台,这个用sqlserver2008(sqlserver2005也有)的databasemail就能很方便的实现。这个完成了以后就能够发送简单的邮件了,但是这样在应用中往往是不够,我们还要需要建一个job来实现自动发送的 阅读全文
posted @ 2014-01-17 14:25 Kevin Gao 阅读(1029) 评论(0) 推荐(0)
SQL如何获得本季度第一天、一年的第一天、本月的最后一天
摘要:nterval 参数,具有以下设定值: 设置 描述 Year yy, yyyy 年 quarter qq, q 季 Month mm, m 月 dayofyear dy, y 一年的日数 Day dd, d 日 Week wk, ww 一周的日数 Hour hh 小时 minute mi, n 分钟 second ss, s 秒millisecond ms 毫秒 ①本周的星期一 这里我是用周(wk)的时间间隔来计算哪一天是本周的星期一。 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) ②一年的第一天 ... 阅读全文
posted @ 2014-01-02 17:01 Kevin Gao 阅读(1276) 评论(0) 推荐(0)
SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
摘要:排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 下面分别介绍一下这四个排名函数的功能及用法。在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int,field2字段的类型是varchar 一、row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。row_number函数的用法如下面的SQL语句所示:select row_... 阅读全文
posted @ 2014-01-02 13:25 Kevin Gao 阅读(237) 评论(0) 推荐(0)
SQLServer获取每组前10%的数据
摘要:sqlserver2005有关键字ntile(x)和over(partition by.. order by..)子句配合.比如获取每个表的前10%个字段。selectid,name,colid,rnfrom(select*,rn=ntile(10)over(partitionbyidorderbycolorder)fromsyscolumns )twherern=1更多0 阅读全文
posted @ 2014-01-02 10:42 Kevin Gao 阅读(1849) 评论(0) 推荐(0)
sql中union 和 union all的区别
摘要:最近发现一个视图出奇的慢,在生产环境还好,由于服务器配置较高,没有察觉出来。但是做了一次修改后在开发版和测试版就直接查询不出结果了.就连select count(1) from 都运行2个小时没有结果。 于是决定放手去查一查问题出现在哪里,由于这个视图是关联了N多表和视图而成的,只能根据查询计划一步步看了,在经过一番调查后发现了,其中的一个视图中是由2个查询语句union成的一个视图,上面的视图有100多万数据,下面的则有1万条数据,2个通过union比较后花费了大量的资源,改写成union all 就不用进行比较了,速度一下子提升了N倍,这里N绝对大于100,select 的结果呼之即出了. 阅读全文
posted @ 2013-11-19 20:57 Kevin Gao 阅读(240) 评论(0) 推荐(0)
由SQL Server的job出错调查引起的思考
摘要:最近一段时间数据库上的一个Job频繁报错,刚开始我们没有抽时间进行彻底的调查。只是处理了下不规范的数据就没有管了,但是后面我们发现过了几天它又报错了。 今天我进行了彻底的调查,发现是由于2个表的列的长度不一致引起的。由于产品和产品品类表中都有产品品类代码这一列,由于前段时间系统因为需求变更更改了产品品类表中的品类代码这一列的长度,由原来的nvchar(10)改到了nvarchar(50),更新后系统也进行了更新,所以产品品类表中存在了字符长度大于10的数据。 但是由于我们有一个Job每天晚上都会将产品表中品类ID和品类表中ID一致,但是品名或者代码不一致的数据进行更新,以保证数据能够及时同步. 阅读全文
posted @ 2013-07-10 16:50 Kevin Gao 阅读(280) 评论(0) 推荐(0)
SQL Server 数据库表的统计信息的更新
摘要:最近在调整基础信息数据时,新增了几个客户类型,意想不到的事情发生了,在使用新增的客户类型作为查询条件查询报表时,居然出现了超时的现象,但是用其他以前的客户类型查询就没有问题,用一个以前增加的客户类型和新增的4个客户类型一起混合查询也没有问题,很快就查询到了数据。 于是我们使用SQL Profiler将对应的脚步抓出来在管理器中直接执行也是很慢,半小时都没有结果,系统当然会超时了啊。我有查询了下客户类型表,发现客户类型表也没有索引,而且也只有不到20条记录,我本次也就新增了4条记录。 突然我想到了前段时间做SQL Server性能优化培训时,讲过数据库表的统计信息的问题,需要更新表的统计信息。. 阅读全文
posted @ 2013-07-02 19:10 Kevin Gao 阅读(5853) 评论(0) 推荐(0)
SQL Server 2005/2008遍历所有表更新统计信息
摘要:DECLARE UpdateStatisticsTables CURSOR READ_ONLY FOR02 SELECTsst.name,03 Schema_name(sst.schema_id)04 FROMsys.tables sst 05 WHEREsst.TYPE = 'U'06DECLARE @name VARCHAR(80),07 @schemaVARCHAR(40) 0809OPEN UpdateStatisticsTables 1011FETCH NEXT FROM UpdateStatisticsTablesINTO @name, @schema1213WHI 阅读全文
posted @ 2013-07-02 16:38 Kevin Gao 阅读(329) 评论(0) 推荐(0)
查找数据库中所有有自增列的用户表
摘要:很多时候我们需要查找数据库中的所有的有自增列的数据库表,数据库表多的时候,自己去查太麻烦了,所以我写了段脚本帮我们查找并打印出数据库表名,代码如下所示: ----查询数据库中所有有自增ID的表declare curtablename cursor local forselect name from sys.objects where type='u'open curtablename declare @Table_name varchar(100)beginfetch next from curtablename into @Table_namewhile @@FETCH_ST 阅读全文
posted @ 2013-04-25 01:27 Kevin Gao 阅读(484) 评论(0) 推荐(0)
数据库增长到一定程度后的瘦身,优化问题
摘要:经过几年的运行升级,我们的数据库系统会变的越来越大,占用的磁盘空间也是越来越多,数据库的表记录每月都在不断的增加,对系统的响应速度也是不断的下降。如何为数据库进行瘦身,并提升访问速度呢? 根据实际工作中的经验,给数据库瘦身无外呼以下几种处理方式: 1.清理历史数据,并将历史数据单独存档。2.清理日志文件,备份时间较久的日志文件。 3.将数据量大且增加数据速度较快的表分区。 同时考虑到提升数据访问效率的处理方式: 1.给数据库的表建立一些必要的索引。2.数据库分文件组。 3.同时表也可以分区。 4.设计表时,表的字段在够用的情况下,择占空间小的数据类型的字段。 5.表中的字段根据实际情况尽量不. 阅读全文
posted @ 2013-03-15 22:58 Kevin Gao 阅读(328) 评论(0) 推荐(0)
同一系统不同客户端的设计
摘要:随着现代科技的迅速发展,上网设备越来越多,特别是智能手机和3G技术的发展,使得越来越多的系统要发展Mobile的版本,而且Mobile的版本主流的就有几种。其中市场份额较大的就有Apple的IOS版本和Google的Android。所以我们在开发系统时,如果要实现在手机端的功能的话,一般都要开发Android和IOS版本的系统。 当然以后可能还会有新的移动终端采用其他系统,但是目前来讲主流的就是这2种了。如果一个用户既可以有Android系统的权限,还可以PC版本的权限,那么我们在数据库中又该如何进行控制呢? 系统的功能权限和数据权限怎么样进行设计呢?目前有些系统采用的是一个系统类型的字段来. 阅读全文
posted @ 2013-03-07 18:45 Kevin Gao 阅读(227) 评论(0) 推荐(0)
系统开发中存储过程使用的优势和劣势
摘要:在系统开发中使用存储过程来完成一些功能是很平常的事情,因为对于性能要求高的操作,或者大数据量的操作,存储过程比使用编程语言开发有相当的性能优势。曾经看到过一个系统使用的存储过程能用巨多来形容,基本上所有的操作都是在数据库写的存储过程。自己当初接触该系统时,对该系统的设计师兼DBA那是相当的佩服。他玩SQL玩的太牛了,写SQL直接用记事本写,然后写完几百行的脚本,基本不用怎么去调试和运行就可以通过了。 但是当我去了解该系统的业务和进行二次开发就发现很痛苦了,因为在存储过程中出现了错误可就不能像Visual Studio中那么方便的进行跟踪了,想单步没门。只能Print或者RAISERROR(&# 阅读全文
posted @ 2013-03-07 15:08 Kevin Gao 阅读(411) 评论(0) 推荐(0)
数据库中状态表的设计
摘要:昨天在系统内部业务培训时,讲到了采购业务中供应商状态的变迁历史,随着公司业务的变更,系统的状态表中的供应商状态不断的增加了。虽然如此,但是由于我们在设计之初据考虑到以后的可扩展性,所以我们的状态是不连续的,比如新建状态是1,审核状态是11,作废状态是否-1等等。这样设计虽然保证了一定程度上的可扩展性,但是对于这些不需要的状态我们在系统中有些地方我们可能就不需要选择了,比如我查看报表时,由于这个状态不再使用了,我就没有必要作为筛选条件了,但是如果没有加上一个是否可见字段来做控制,则我们就必须在系统前端编程控制了。 这样显然不太方便了,而且后续开发和维护的工作量也加大了,因此在做数据库设计时也要. 阅读全文
posted @ 2013-03-07 14:31 Kevin Gao 阅读(713) 评论(0) 推荐(0)
sql查询数据库中有某个值的所有表
摘要:在数据库中查找含有某个值的所有表的表名,使用如下的存储过程可以做到这一点。CREATE PROCEDURE dbo.FindString @string NVARCHAR(100)ASDECLARE @SQL NVARCHAR(4000); SET @SQL = N' DECLARE @str NVARCHAR(4000); SELECT @str = ISNULL(@str + N'' OR '' + c.name + N'' LIKE N''''%' + @string + ' % 阅读全文
posted @ 2013-03-01 10:37 Kevin Gao 阅读(1499) 评论(0) 推荐(0)
数据库的持续集成和版本控制
摘要:数据库的持续集成和版本控制http://database.51cto.com 2008-02-26 10:57 张海龙InfoQ中文站 我要评论(0)摘要:版本化数据库的目的就是为了能保证所做的改变能保持一致性、可控性、可测试性和可重现性。数据库是按照2.0版的基线脚本安装的,必须要应用02.00.0003脚本,但实际的产品数据库可能是从1.0版开始的,它将应用01.00.0046脚本来修复,所以你不能让02.00.0003去再次修改这个实际已经升级到2.0版的数据库否则,会造成错误。标签:数据库集成 版本 控制在提出版本化数据库工作是一个必要规则这一观点之后,Scott Allen又详述了一 阅读全文
posted @ 2013-01-24 16:27 Kevin Gao 阅读(637) 评论(1) 推荐(0)
SQLServer中数据库文件的存放方式,文件和文件组
摘要:上次我关于索引的文章有几个园友发站内信问我如何将索引和表存储在不同的硬盘上。我觉的需要专门写一篇文章来讲述一下文件和文件组应该更容易理解详细出处参考:http://www.jb51.net/article/29270.htm简介在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL SERVER通过管理逻辑上的文件组的方式来管理文件.理解文件和文件组的概念对于更好的配置数据库来说是最基本的知识。理解文件和文件组在SQL SERVER中,通过文件组这个逻辑对象对存放数据的文件进行管理.先来看一张图:我们看到的逻辑数据库由一 阅读全文
posted @ 2013-01-21 15:20 Kevin Gao 阅读(334) 评论(0) 推荐(0)
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表't_ArticleFiles'中的标识列指定显式值。
摘要:今天在向一个数据库导入另外一个数据库的表数据时,突然提示了“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表't_ArticleFiles'中的标识列指定显式值。”这个错误,刚开始时,以为自己设置有误,后来才发现原来是set IDENTITY_INSERT XDSDev.dbo.t_ArticleFiles on的时候,如果向数据表中插入数据,不能直接写insert into t_ArticleFiles select * from xxx.dbo.t_ArticleFiles 这样的语句来进行插入数据,要将t_ArticleFiles的列显示的写出 阅读全文
posted @ 2013-01-18 19:28 Kevin Gao 阅读(538) 评论(0) 推荐(0)
SQL Server 远程链接服务器详细配置【转载】
摘要:http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html远程链接服务器详细配置--建立连接服务器EXEC sp_addlinkedserver'远程服务器IP','SQL Server'--标注存储EXEC sp_addlinkedserver@server = 'server',--链接服务器的本地名称。也允许使用实例名称,例如MYSERVER\SQL1@srvproduct = 'product_name'--OLE DB数据源的产品名。对于SQL 阅读全文
posted @ 2013-01-18 19:18 Kevin Gao 阅读(786) 评论(0) 推荐(0)
系统升级时,数据库脚本执行注意事项,血的教训
摘要:最近进行了系统的一次大的升级,由于要进行升级执行的数据库的脚本很多,所以发布时一不小心执行了一个不该执行的脚本。事后虽然我们及时的进行了补救,但是仍然让系统的业务停滞了近2个小时。 因而有必要对数据库脚本的登记和管理及数据库脚本的发布流程进行下梳理。 首先就体现在数据库的脚本登记上: 1.脚本登记一定要按照项目登记在统一的文件夹,文件夹的名称要按照统一的规范来命名,让发布人员一眼就能根据文件夹的名称来区分。 因为我们目前一般都会有多个项目并行,虽然都是围绕一个产品在进行开发,但是项目的启动和终结是有先后顺序的,所以一般一个项目 的脚本都应该在一个文件夹下,同时由于项目是在迭代进行的,不是一次. 阅读全文
posted @ 2012-12-15 15:34 Kevin Gao 阅读(2089) 评论(0) 推荐(0)
SQL 查询时join的顺序问题
摘要:在我们工作中时常要写查询语句,那么left join和right join 是查询语句中常见的关联关系。可是我们在使用它们时,有没有想过怎么样去做关联,怎么样选择它们的顺序呢?比如:A表关联B 表,A也要关联C表,A和B关联时,B和A关联时可能会有Null值出现,也允许Null出现,A和C关联不能有Null值,那么我们先想一想应该怎么样处理它们呢?可能你会说这还不简单啊,如下所示:实现1:select * from C inner join A on C.ID=A.IDLeft Join Bon A.Code=B.Code实现2:select * from A Left Join B on . 阅读全文
posted @ 2012-09-17 22:45 Kevin Gao 阅读(678) 评论(0) 推荐(0)
 

上一页 1 2 3 4 下一页