
SQL
文章平均质量分 76
downmoon
浙江大学(项目管理方向)工程硕士,PMP,微软MVP获得者。十年以上.NET、架构设计、数据库开发经验,十年以上项目管理经验、从事多个垂直行业、零售流通领域多年。欢迎交流。
展开
-
获取Oracle过程中的OUT SYS_REFCURSOR值
一个项目中的实例:获取Oracle过程中的返回SYS_REFCURSOR。注意:如果SYS_REFCURSOR为一个表或视图。可以通过表名%ROWTYPE获取每行数据,而不必另外定义type。原过程大致如下:PROCEDURE P_USER_LOGIN(P_USERLOGINID IN VARCHAR2,P_PASSWORD IN VARCHAR2,P_SHOPID IN VARCHAR...原创 2019-11-20 11:15:30 · 3848 阅读 · 1 评论 -
SQL Server 2008中SQL之WaitFor
SQL Server 2008中SQL应用系列--目录索引在SQL Server 2005以上版本中,在一个增强的WaitFor命令,其作用可以和一个job相当。但使用更加简捷。看MSDN:http://msdn.microsoft.com/zh-cn/library/ms187331.aspx语法为:WAITFOR{ DELAY 'time_to_pass' | TIME 'tim原创 2010-12-07 16:57:00 · 2888 阅读 · 0 评论 -
SQL Server 2008中SQL增强之二:Top新用途
SQL Server 2008中SQL应用系列--目录索引一、TOP替代Set RowCount在SQL Server 2005之前的传统SQL语句中,top语句是不支持局部变量的。见http://blog.youkuaiyun.com/downmoon/archive/2006/04/12/660557.aspx此时可以使用Set RowCount,但是在SQL Server 2005/2008中,TOP通原创 2010-10-12 22:26:00 · 7007 阅读 · 0 评论 -
SQL Server 2008中的代码安全(八):透明加密(TDE)
SQL Server 2008引入透明数据加密(Transparent Data Encryption),即TDE,它允许你完全无需修改应用程序代码而对整个数据库加密。当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密。在数据页读入内存时解密。如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问。这几乎是SQL Server2008安全选项中最激动人心的功能了,有了它,原创 2011-03-17 15:56:00 · 5634 阅读 · 0 评论 -
前触发器和后触发器简介(downmoon)
前触发器和后触发器简介 触发器是一种特殊的存储过程。当Insert Update 或者Delete 语句修改表中一个或者多个行时执行触发器。因为SQL Server 对特定表上的每一个指定操作调用一个触发器,所以可以使用触发器扩展SQL Sever 的内置完整性和数据操纵功能. 注意:不像Delete 语句,Trancate Table 语句不激活触发器,Write Text 语句也不原创 2006-04-06 15:31:00 · 12808 阅读 · 1 评论 -
安装sql2008 enterprise (English正式版)图解
首先,如果安装过vs2008的任何版本,而且没有打过vs2008的sp1补丁,那么请首先删除你的vs2008!!是的, 删除!正确的安装顺序应该是这样: ㈠office2007(+Sp1)>>㈡sql2008>>㈢Vs2008>>㈣Vs2008 SP1 请相信, 这是血的教训! 第一步:下载ISO文件,参照我的另外一篇日志, 下载完毕后解压ISO文件,约3.03G大小。载入虚拟光驱 第二步:安原创 2008-08-22 22:28:00 · 6903 阅读 · 9 评论 -
SQL Server返回最后一个标识值的三个函数:IDENT_CURRENT、@@IDENTITY、SCOPE_IDENTITY
SQL Server 2008中SQL应用系列--目录索引 昨天有人在群里讨论SQL Server返回最后一个标识值的三个函数:IDENT_CURRENT、@@IDENTITY、SCOPE_IDENTITY,在些作个标记和小结。 其实MSDN对此有官方解释:这三个函数都返回最后生成的标识值。 但是,上述每个函数中定义的“最后”的作用域和会话有所不同。 1、IDENT_CURRENT 返回为某原创 2012-04-12 17:33:58 · 9790 阅读 · 0 评论 -
SQL Server 2012 RTM 安装手记
2012年3月7日,微软终于如约发布了内部版本号为11.0.2100.60的新一代数据库平台:SQL Server 2012。发行声明:http://social.technet.microsoft.com/wiki/contents/articles/5636.sql-server-2012-zh-cn.aspx官方的安装说明:http://msdn.microsoft.com/zh-cn/li原创 2012-03-08 16:43:54 · 5619 阅读 · 2 评论 -
JDBC Driver For SQL2000/2005/2008
机器上配置的JDK为1.6,SQL2005/2008,而JDBC Driver一直用Microsoft SQL Server 2005 JDBC Driver 1.2,支持sql2000/sql2005/sql2008,下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=C47053EB-3B64-4794-950D-81E1原创 2009-07-16 11:00:00 · 18452 阅读 · 10 评论 -
SQL Server 2008如何压缩日志(log)文件?
在SQL Server 2000/2005中可以快速压缩日志log文件,通过SQL,方法一: -- BigData为数据库名DUMP TRANSACTION BigData WITH NO_LOGBACKUP LOG BigData WITH NO_LOGDBCC SHRINKDATABASE(BigData ) 执行以上语句可以快速压缩日志文件到1M原创 2009-12-13 15:13:00 · 9849 阅读 · 1 评论 -
SQL Server中Between在查询日期时有30秒的误差
在SQL Server 2005 SP3环境下,今天偶然使用Between查询日期数据时,发现以下奇怪现象:其中PaymentDate为Smalldatetime难道2011-07-31 23:59:59还在2011-08-01 0:00:00之外?继续尝试,发现将时间减少31秒原创 2011-08-10 14:59:55 · 3220 阅读 · 2 评论 -
安装VS2010 SP1后SQL Server 2008 r2智能感知功能(IntelliSense)失效的一个解决方案
在《安装VS2010 SP1后SQL Server 2008 r2智能感知功能(IntelliSense)失效!》一文中,我们知道,安装vs 2010 sp1后,Sql server 2008 r2 RTM的智能感知失效,微软已经Fix了这个问题,并将会在2011年4月中旬发布“Cumulative Update #7 for SQL Server 2008 R2 RTM”以修正这个Bug,请关注更新站点(http://blogs.msdn.com/b/sqlreleaseservices/)。今天看到一个原创 2011-04-15 11:20:00 · 5817 阅读 · 1 评论 -
SQL server的一道入门面试题背后的思考
最近看到一个SQL Server的小例子,发现完全可以作为SQL server的一道入门面试题。题目如下:例:有一合同表Contract Id Name Total buget 1 合同名称 100 102,22 2 合同名称2 300 ,102,22, 3 合同名称3 200 ,103,23, 要求:用SQL语句更新表的buget字段,如果前后没有","要加上","(即一个英文逗号)。(10分)原创 2011-03-02 09:58:00 · 1593 阅读 · 5 评论 -
千万数据的连续ID表,快速读取其中指定的某1000条数据?
有这样一个需求:一张上千万数据的表,结构很简单:ID是自增的,你怎么快速读取其中指定的某1000条数据,比如100万到100万零1000?这个需求其实很简单,因为是自增型ID,可能分两种状况:有聚集索引或Heap,如果是后者,我想用ID和新增时间组建非聚集索引。效果应该相差不大。原创 2010-08-28 00:33:00 · 2822 阅读 · 4 评论 -
Vs2010在没有安装SQL Server 2005/2008 Express时如何连接MDF数据文件?
在参考ASP.NET MVC Music Store作演示时,遇到一个问题,已经下载了源码中的数据库MvcMusicStore.mdf,并置于项目的app_data下,虽然已经安装SQL Server 2008 r2企业版,但在vs2010界面连接访该数据文件时还是会提示:安装SQL Server 2005/2008 express。原创 2010-06-23 12:04:00 · 3665 阅读 · 0 评论 -
SQL Server如何清除连接过的服务器名称历史?
有朋友问起,如何在SQL Server中清除已经连接过的服务器名称(Server Name)列表?原创 2010-06-18 16:16:00 · 6917 阅读 · 1 评论 -
介绍一个开源的在线管理SQLServer的小工具--SQLEntMan
近来有许多人问起SQL在线管理的问题,遂将以前用过的一个开源SQL 在线管理工具修改了一下,并分享。附源码下载。原创 2010-06-07 10:45:00 · 3001 阅读 · 0 评论 -
SQL Server中SMO备份数据库进度条不显示?
朋友提到一个奇怪的问题,用SMO备份数据库时不显示进度条,也就是进度条事件PercentComplete不触发。今天试了一下,果然有点奇怪。原创 2010-06-03 01:41:00 · 2170 阅读 · 1 评论 -
SQL Server 2008中SQL应用之-“死锁(Deadlocking)”
SQL Server 2008中SQL应用系列--目录索引 当一个用户会话(会话1)已经锁定了一个资源,而另一个会话(会话2)想要修改该资源,并且会话2也锁定了会话1想要修改的资源时,就会出现“死锁”(deadlocking)。在另一方释放资源前,会话1和会话2都不可能继续。所以,SQL Server会选择死锁中的一个会话作为“死锁牺牲品”。注意:死锁牺牲品的会话会被杀死,事务会被回滚。注意:死锁原创 2011-02-27 18:16:00 · 5237 阅读 · 10 评论 -
SQL Server 2008中SQL应用之-“锁定(locking)”
SQL Server 2008中SQL应用系列--目录索引一、锁的基本概念:锁定(Locking)是一个关系型数据库系统的常规和必要的一部分,它防止对相同数据作 并发更新 或在更新过程中查看数据, 从而保证被更新数据的完整性。它也能防止用户读取正在被修改的数据 。Sql Server动态地管理锁定,然而,还是很有必要 了解Transact- SQL查询如何影响SQL Server中的锁定。在此,原创 2011-02-18 12:45:00 · 3401 阅读 · 0 评论 -
SQL Server 2008中的代码安全(一):存储过程加密与安全上下文
SQL Server 2008中SQL应用系列--目录索引最近对SQL Server 2008的安全入门略作小结,以作备忘。本文涉及两个应用:存储过程加密和安全上下文。存储过程加密其实,用了这十多年的SQL server,我已经成了存储过程的忠实拥趸。在直接使用SQL语句还是存储过程来处理业务逻辑时,我基本会毫不犹豫地选择后者。理由如下:1、使用存储过程,至少在防非法注入(inject)方面提供更原创 2011-02-28 14:44:00 · 6098 阅读 · 18 评论 -
SQL Server 2012新特性(1)T-SQL操作FileTable目录实例
在SQL Server 2008提供FileStream,以借助Windows系统本身的API来强化SQL Server对于非结构化数据的支持后,SQL Server 2012更是推出了像Contained Database、FileTable等令人期待的新功能。对于FileTable的功能和特性,在此无需赘述,本文主要针对FileTable的T-SQL操作目录做一个实例演示。原创 2014-04-23 17:04:03 · 8856 阅读 · 0 评论 -
SQL Server 2008/2012中SQL应用系列及BI学习笔记系列--目录索引
SQL Server 2008中SQL应用系列及BI学习笔记系列,欢迎与邀月交流。3w@live.cn◆0、SQL应用系列1、SQL Server 2008中SQL增强之一:Values新用途2、SQL Server 2008中SQL增强之二:Top新用途3、SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)4、SQL Serve原创 2011-03-10 21:12:00 · 21802 阅读 · 7 评论 -
64位Oracle 11g R2的客户端连接时报ORA-01019错误
在Win8企业版64位环境下,连接Oracle11g 服务端,搞了整整两天,特将过程分享出来,供有需要的同学参考。本机环境:1、服务端:Oracle 11g R2 64位,安装路径E:/Org12官方下载:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html2、客户端:(1)Instan原创 2012-09-20 14:03:14 · 4451 阅读 · 1 评论 -
关联表的批量更新(SQL SERVER)
在更新一批记录时使用如下语句:update publish set contentid=(select top 1 articles.contentid from articleswhere articles.articleID=publish.objectID)--where publish.objectid=@objectID 前提是:publish表的记录不能大于Article的记录,即要原创 2006-09-28 15:28:00 · 4345 阅读 · 1 评论 -
SQL2005/2008中的CTE应用--递归查询
微软从SQl2005起引入了CTE(Common Table Expression)以强化T-SQL。这是一个类似于非持久视图的好东东。按照MSDN介绍1、公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同原创 2009-10-23 01:37:00 · 5595 阅读 · 1 评论 -
SQL Server 2008中的代码安全(六):对称密钥加密
SQL Server 2008中SQL应用系列--目录索引 证书和非对称密钥使用数据库级的内部公钥加密数据,并且使用数据库级内部私钥解密数据。而对称密钥相对简单,它们包含一个同时用来加密和解密的密钥。困此,使用对称密钥加密数据更快,并且用在大数据时更加合适。尽管复杂度是考虑使用它的因素,但它仍然是一个很好的加密数据的选择。 我们看一组例子:示例一、创建对称密钥对称密钥的特性是:在数据库会话中使用它原创 2011-03-15 11:30:00 · 4306 阅读 · 1 评论 -
SQL Server 2008中的代码安全(五):非对称密钥加密
SQL Server 2008中SQL应用系列--目录索引 非对称密钥包含数据库级的内部公钥和私钥,它可以用来加密和解密SQL Server数据库中的数据,它可以从外部文件或程序集中导入,也可以在SQL Server数据库中生成。它不像证书,不可以备份到文件。这意味着一旦在SQL Server中创建了它,没有非常简单的方法在其他用户数据库中重用相同的密钥。非对称密钥对于数据库加密属于高安全选原创 2011-03-14 08:07:00 · 3508 阅读 · 4 评论 -
SQL Server 2008中的代码安全(四):主密钥
SQL Server 2008中SQL应用系列--目录索引在SQL Server中的加密由层次结构形式进行处理以提供多级别的安全。SQL Server包含两个用于加密数据的密钥类型。如下图:1、服务器主密钥(Service Master Key),位于层次结构的最顶端,并且在安装SQL Server时自动创建,用于加密系统数据、链接的服务器登录名以及数据库主密钥。在第一次通过SQL Server使原创 2011-03-10 14:31:00 · 4027 阅读 · 7 评论 -
SQL Server 2008中的代码安全(二):DDL触发器与登录触发器
SQL Server 2008中SQL应用系列--目录索引本文主要 涉及DDL触发器和登录触发器的应用实例。MicrosoftSQL Server 提供两种主要机制来强制使用业务规则和数据完整性:约束和触发器。触发器为特殊类型的存储过程,可在执行语言事件时自动生效。SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。1、当数据库中发生数据操作语言 (DML)原创 2011-03-03 08:10:00 · 3277 阅读 · 1 评论 -
SQL Server 2008中SQL应用之-“阻塞(Blocking)”
SQL Server 2008中SQL应用系列--目录索引 当一个数据库会话中的事务正锁定一个或多个其他会话事务想要读取或修改的资源时,会产生阻塞(Blocking)。通常短时间的阻塞没有问题,且是较忙的应用程序所需要的。然而,设计糟糕的应用程序会导致长时间的阻塞,这就不必要地锁定了资源,而且阻塞了其他会话读取和更新它们。在SQL Server中,一个阻塞的进程会无限期地保持阻塞,或者直到它原创 2011-02-18 15:57:00 · 2905 阅读 · 0 评论 -
SQL Server 2008中通过DBCC OPENTRAN和会话查询事务
SQL Server 2008中SQL应用系列--目录索引无论是有意无意,如果事务在数据库中保持打开,则它会阻塞其他进程对修改后的数据进行操作。同样,对事务日志进行备份也只会截断不活动事务的那部分事务日志,所以打开的事务会导致日志变多(甚至达到物理限制),直到事务被提交或回滚。要找到最早的活动事务,可以使用DBCC OPENTRAN命令。详细用法见MSDN:http://msdn.microsof原创 2010-12-24 15:11:00 · 4315 阅读 · 0 评论 -
SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
SQL Server 2008中SQL应用系列--目录索引SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MSDN:http://msdn.microsoft.com/zh-cn/library/bb510625.aspx功能:根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。我们原创 2010-10-17 21:56:00 · 10702 阅读 · 15 评论 -
SQL Server 2008中SQL增强之一:Values新用途
SQL Server 2008中SQL应用系列--目录索引SQL Server 2008中新增功能:可以使用单个Insert命令插入多行。 Create table Demo_Values(PKID int not null identity(1,1) primary key,DName Nvarchar(20) null,DCode NVarchar(30) null,DDate dat原创 2010-10-12 20:53:00 · 7389 阅读 · 2 评论 -
一个Excel导入SQL server的例子(分别使用游标、CTE、master..spt_values实现)
SQL Server 2008中SQL应用系列--目录索引 有人提问如下:这个是Excel的,比如是test.xls欠费年份 欠费开始月份 欠费结束月份 应缴金额(月租) 2001 9 12 94.4 2008 5 12 88.原创 2011-05-02 01:00:00 · 3376 阅读 · 6 评论 -
SQL Server 2008中的代码安全(七):证书加密
SQL Server 2008中SQL应用系列--目录索引证书可以在数据库中加密和解密数据。证书包含密钥对、关于证书拥有者的信息、证书可用的开始和结束过期日期。证书同时包含公钥和密钥,前者用来加密,后者解密。SQL Server可以生成它自己的证书,也可以从外部文件或程序集载入。因为可以备份然后从文件中载入它们,证书比非对称密钥更易于移植,而非对称密钥却做不到。这意味着可以在数据库中方便地重用同一原创 2011-03-16 08:06:00 · 4260 阅读 · 7 评论 -
SQL Server 2008中的代码安全(三):通过PassPhrase加密
SQL Server 2008中SQL应用系列--目录索引导读:本文主要涉及EncryptByPassPhrase和DecryptByPassPhrase函数进行通行短语(PassPhrase)加密。前言: 在SQL Server 2005和SQL Server 2008之前。如果希望加密敏感数据,如财务信息、工资或身份证号,必须借助外部应用程序或算法。SQL Server 2005引入原创 2011-03-07 10:08:00 · 3220 阅读 · 2 评论 -
SQL Server 2008 r2 安装过程图解
昨晚,到微软官方下了一个32版本的Trial版本。文件名为SQLFULL_x86_ENU.exe。文件大小为1.30G左右。因为只有32位一个版本,比SQL Server 2008那个3G的要小多了。呵呵。http://www.microsoft.com/sqlserver/2008/en/us/R2Downloads.aspx 下载完成后,先卸载原来的SQL Server原创 2010-05-19 14:23:00 · 30177 阅读 · 4 评论 -
一个简单XQuery查询的例子
有朋友问到一个问题:一张表里有两个XML字段类型的字段,存放旧值,和更新后的值,例如: 030 030 00220 10004035 SO 10.100 040 040 00220 10004035 SO 10.100 CS 8811 现在想通过一 个xquery比较出两个值的不原创 2010-04-26 13:38:00 · 1974 阅读 · 0 评论 -
获取SqlServer 2005中字段的备注信息--downmoon
在上篇文章中,介绍了如何获取SqlServer 2000中字段的备注信息本文将介绍如何获取SqlServer 2005中字段的备注信息(downmoon)Declare @tblName nvarchar(1000) set @tblName原创 2007-09-28 17:27:00 · 5376 阅读 · 2 评论