上一页 1 2 3 4 5 6 7 8 ··· 20 下一页
摘要: 写了四个CLR函数,我们比较常用的功能自定义函数REGULARMATCH()对应C#中MATCHIS_REGULARMATCH()对应C#中IS_MATCH自定义聚合STR_SUM字符串聚合,中间半角逗号分隔STR_UNION_SUM字符串去重聚合,也是半角逗号分隔使用示例: 1 USE MASTER 2 GO 3 4 5 --判断手机号是否合法 6 SELECT dbo.IS_REGULARMATCH('13888888888','^(1[3,5,8,4][0-9])\d{8}$'),dbo.IS_REGULARMATCH('123456789' 阅读全文
posted @ 2013-05-03 19:02 代岳强 阅读(1036) 评论(0) 推荐(0) 编辑
摘要: if OBJECT_ID('ExampleTable2') is not null drop table ExampleTable2CREATE TABLE ExampleTable2 (PriKey int PRIMARY KEY, VerCol rowversion) ;insert into ExampleTable2 (PriKey)select 1 unionselect 2 unionselect 3 select * from ExampleTable2 说明:公开数据库中自动生成的唯一二进制数字的数据类型。rowversion 通常用作给表行加版本戳的机制。存储 阅读全文
posted @ 2013-05-03 18:32 代岳强 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接【分离/附加】或者【备份/还原】数据库,在 不同版本之间存放。往往就会遇到版本不兼容的问题。前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错:从 运行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出这个版本不兼容问题,大部分情况 下,从低版本升级到高版本,只要不是跨度太大,如2000升级到2012,都不会怎么报错。除非使用了一些新版本不兼容的特性如*=来实现left join的语句。但是就像上图那样,从高版本还原到 阅读全文
posted @ 2013-05-03 15:38 代岳强 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。?12345DECLARE @TempTable table(UserID int , UserName nvarchar(50));insert into @TempTable (UserID,UserName) values (1,'a')insert into @TempTable (UserID,UserName) values (2,'b')select UserID,UserName from @TempTable FOR XML PA 阅读全文
posted @ 2013-05-02 19:50 代岳强 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 检测是不是数字型的数据, 两种方法1. ISNUMERIC ( expression )2. PATINDEX ( '%pattern%' , expression )1. ISNUMERIC ( expression )如果是数字类型则返回 1 ,不是则返回 0但ISNUMERIC有时是不可靠的,如果你不允许expression包含有任何字母,则会判断错:如:ISNUMERIC(‘23e4’)返回 1 ISNUMERIC(‘23d4’)返回 12. PATINDEX ( '%pattern%' , expression )返回值为第一个满足pattern的位置 阅读全文
posted @ 2013-05-02 18:32 代岳强 阅读(2351) 评论(0) 推荐(0) 编辑
摘要: 有表tb, 如下:id value----------- -----------1 aa,bb2 aaa,bbb,ccc欲按id,分拆value列, 分拆后结果如下:id value----------- --------1 aa1 bb2 aaa2 bbb2 ccc创建表和测试数据create table tb(id int,value varchar(30)) insert into tb values(1,'aa,bb') insert into tb values(2,'aaa,bbb,ccc') go 1. 旧的解决方法(sql server 2000 阅读全文
posted @ 2013-05-02 16:27 代岳强 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机。 更重要的是,对于非常大的数据模型而言,分页检索时,如果按照传统的每次都加载整个数据源.. 阅读全文
posted @ 2013-05-02 15:16 代岳强 阅读(351) 评论(0) 推荐(1) 编辑
摘要: 定义一个存储过程如下:createproc[dbo].[test1] @idint as select1as id,'abc'as name unionall select@idas id,'zzz'as name返回两行数据. 现在想用SQL语句来调用这个存储过程,并把他返回的表放入变量中.可以如下做:declare @table table(id int,name varchar(50))--定义表变量来存放存储过程返回的内容 insert into@tableexec test1 2--将存储过程执行的结果放入表变量中 select* from@table 阅读全文
posted @ 2013-04-30 09:29 代岳强 阅读(114) 评论(0) 推荐(0) 编辑
摘要: --建测试表create table tzs(x varchar(10))--建存储过程create proc add_tzsasbegin set nocount on declare @mx varchar(10),@i int,@j1 char(1),@j2 char(1) select @mx=max(x) from tzs if @mx is null begin insert into tzs(x) values('0000001') return end else begin select @i=2,@mx='0'+substring(@mx,pa 阅读全文
posted @ 2013-04-27 10:25 代岳强 阅读(2254) 评论(0) 推荐(0) 编辑
摘要: 介绍:SQL Server 2008变更数据捕获SQL Server 2008的CDC函数读取激活了CDC的每个表所关联的事务日志来记录系统表中的变更。它将这些文件写到同一个数据库的系统表中,这些系统表是可以通过直接查询或系统函数来访问的。让我们看些示例代码并看看每一步有什么改变。使用示例代码来跟踪可变部分首先,我们从一个全新的数据库开始。要跟踪这些变更,打开对象浏览器并展开这些文件夹:· Databases· SQLServer Agent | Jobs· (数据库创建之后)Security | Roles | Database Roles· (数据库 阅读全文
posted @ 2013-04-27 09:57 代岳强 阅读(324) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 20 下一页