数据库
三断笛
这个作者很懒,什么都没留下…
展开
-
基于T-SQL的规则引擎(一) 背景
从明天起终于可以休息了.停下来休养身体,扎实学习一下技术,顺便写写这几年做过的东西.第一个,是一个基于SQL SERVER的规则引擎,写于2011年,当时不知道有规则引擎这东西,为了实现这样一个功能,自己写了一个,当时起的名字是"策略引擎",这个名字相当可是想了好久(给自己开发的东西命名是很爽的事)。背景我就职于一家联通代理商,是最早的一批联通3G代理商,主营3G业务,并且将公司自原创 2013-11-09 23:53:57 · 3636 阅读 · 1 评论 -
使用T-SQL生成树形目录(引用)
使用T-SQL生成树形目录(引用) 收藏 --创建测试数据表.create table tb(id int,name varchar(10),parentid int) insert tb select 1,aaaa ,0 union all select 2,bbbb ,0 union all select 3,cccc ,0 union all se转载 2010-03-03 01:20:00 · 848 阅读 · 0 评论 -
SQLServer数据集合的交、并、差集运算
SQLServer2005通过intersect,union,except和三个关键字对应交、并、差三种集合运算。他们的对应关系可以参考下面图示 相关测试实例如下:use tempdb go if (object_id (t1 ) is not null ) drop table t1 if (object_id (t2 ) is not null ) dr转载 2010-03-03 01:09:00 · 676 阅读 · 0 评论 -
sql2005中一个xml聚合的例子
sql2005中一个xml聚合的例子 收藏 该问题来自论坛提问,演示SQL代码如下--建立测试环境set nocount oncreate table test(ID varchar(20),NAME varchar(20))insert into test select 1,aaainsert into test select 1,bbbins转载 2010-03-03 01:24:00 · 553 阅读 · 0 评论 -
存储过程中的行集作为子查询
存储过程中的行集作为子查询可以使用Openrowset,但Openrowset不支持参数话的语句,要实现参数只能在客户端程序中把要的最终语句拼接好传入。实际应用中,我用openrowset连接ssas服务器来和sqlserver数据库对象实现交互。测试语句如下: use tempdb go create proc p_test as begin select 1 as a ,转载 2010-03-03 01:13:00 · 800 阅读 · 0 评论 -
设计难题:领导的方案和我的方案哪种更优?
[环境] 有多台高性能数据库服务器组成一个中央服务器集群,提供核心共享数据库,可以认为中央服务器是绝对安全的.另外有若干台数据库服务器供业务访问. [业务流程介绍] 办理某业务时需要对信用额度进行检测和操作.各种业务对额度的访问频繁.大致流程如下: 业务服务器:提交单据时,判断信用额度减冻结额度是否大于0,大于0则增加冻结额度,信用额度余额不变,业务继续.小于0则禁止提交,中原创 2012-09-01 22:39:50 · 1222 阅读 · 2 评论 -
sql server 中语法校验
在今天的培训考试过程中,我提出一个扩展题,要求对提交的sql进行语法校验.其实这个题很简单,根本不需要用正则表达式去做语法分析,可以直接使用sql server自带的功能.不多说,上代码.alter proc sp_checksql @sql varchar(8000), @Error varchar(max)='' output as begin set nocount原创 2013-10-16 22:45:02 · 1769 阅读 · 0 评论 -
SQLServer中的循环批处理
SQLServer中的循环批处理GO命令后面加一个常量就可以了下面方法可以用来快速生成一批数据if (object_id ('t' ) is not null ) drop table t go create table t (id int identity (1 , 1 ), name varchar (40 ))go insert into t (name ) se转载 2010-03-03 01:15:00 · 672 阅读 · 0 评论 -
VS2008 连接SQL2008调试 提示"不支持此服务器版本,仅支持sql 2005以下版本的服务器"
系统环境:WIN7 旗舰版 64位VS2008简体中文版,微软官网下载的.SQL2008 R2连接数据库调试时一直提示不支持此服务器版本,仅支持sql 2005以下版本的服务器尝试了很多办法都没解决,最终的解决办法是安装VS2008 SP1补丁.原创 2012-08-15 09:48:22 · 5254 阅读 · 0 评论 -
SQL Server 解决 "无法执行该操作,因为链接服务器 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务"
在跨网段的两台服务器间建立了链接服务器,读取数据正常,但是当用分布式事务更新时,提示"无法执行该操作,因为链接服务器 "XXXX" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务"解决办法:1.检查MSDTC设置,网上都有,不多说明.可以参照此文2.修改host设置,在C:\Windows\System32\drivers\etc下,在两台服务器分别添加原创 2012-11-28 11:40:35 · 33145 阅读 · 0 评论 -
SQL 聚合函数和空结果集对@@Rowcount的影响
今天测试一段代码.其中有一个逻辑是,有一个表,这个表有ID和Value两个字段,现尝试从这个表取某个ID的最大value值,若存在记录,则返回此最大值,若不存在,则插入一条新值.代码逻辑大致如下: DECLARE @max INTSELECT @max=0SELECT @Max = MAX(Filed1)FROM Table1IF @@Rowcount = 0原创 2012-12-10 15:30:38 · 1309 阅读 · 0 评论 -
18句话入门SQLServer XML
18句话入门SQLServer XML 收藏 /* sql xml 入门: --by jinjazz --http://blog.csdn.net/jinjazz 1、xml: 能认识元素、属性和值 2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)转载 2010-03-03 01:17:00 · 483 阅读 · 0 评论 -
SQLServer任意列之间的聚合
SQLServer任意列之间的聚合 收藏 sql的max之类的聚合函数只能针对同一列的n行运算,如果对n列运算,一般都用case 语句来判断,如果列少还比较容易写,列多了就麻烦了。这里介绍一个通过xml合并列并转为行集后直接用聚合函数求值的方法,测试用例和代码如下--------------------------------------------------------------转载 2010-03-03 01:16:00 · 644 阅读 · 0 评论 -
SQL SERVER中事务和锁的简要理解
阅读本文前建议先对事务有过基本的了解,有使用过事务,听过“锁”这个概念,而且对事务和锁的概念一直不太清楚。对于事务和锁的详细解说可以参考http://blog.csdn.net/happyflystone/article/list/1中的事务和锁系列,本文只是试图用最简单的语言(甚至不太精准)来帮助初学者理解锁和事务的概念。更加精准、全面和深入的概念请自行阅读。什么?你说你没用过事务?没用原创 2013-11-24 01:11:04 · 1846 阅读 · 0 评论