随笔分类 -  数据库

SQL Server RAISERROR() 函数
摘要:生成错误消息并启动会话的错误处理。 RAISERROR 可以引用 sys.messages 目录视图中存储的用户定义消息,也可以动态建立消息。 该消息作为服务器错误消息返回到调用应用程序,或返回到 TRY…CATCH 构造的关联 CATCH 块。语法:RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ] ) [ WITH option [ ,...n ] ]来源:http://msdn.microsoft.com/zh-cn/libra... 阅读全文

posted @ 2013-09-27 15:54 AngelLee2009 阅读(1328) 评论(0) 推荐(1)

SQL Server OBJECT_ID() 函数
摘要:OBJECT_ID返回架构范围内对象的数据库对象标识号。重要提示 使用 OBJECT_ID 不能查询非架构范围内的对象(如 DDL 触发器)。对于在 sys.objects 目录视图中找不到的对象,需要通过查询适当的目录视图来获取该对象的标识号。例如,若要返回 DDL 触发器的对象标识号,请使用 SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog'语法:OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] o 阅读全文

posted @ 2013-09-27 14:52 AngelLee2009 阅读(22913) 评论(0) 推荐(1)

触发器(2)
摘要:1、DML触发器分为两种(AFTER触发器和INSTEAD OF触发器)AFTER触发器(之后触发) 也叫FOR触发器,after触发器要求只有执行某一操作insert、update、delete之后触发器才被触发,且只能定义在表上。(AFTER触发器只能在表上指定,且动作晚于约束处理。)INSTEAD OF 触发器(之前触发) 而instead of触发器表示并不执行其定义的操作(insert、update、delete)而仅是执行触发器本身。既可以在表上定义instead of触发器,也可以在视图上定义。 触发器有两个特殊的表:插入表(instered表)和删除表(deleted表... 阅读全文

posted @ 2013-09-27 13:45 AngelLee2009 阅读(511) 评论(0) 推荐(0)

触发器
摘要:触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。 触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行。1、触发器简介 触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户... 阅读全文

posted @ 2013-09-27 12:09 AngelLee2009 阅读(326) 评论(0) 推荐(0)

不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进
摘要:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进进行了更改或启用了“阻止保存要求重新创建表的更改”选项。问题:解决方法:在Management Studio中,选择“工具->选项->Designers->表设计器和数据库设计器”中,把“阻止保存要求重新创建表的更改”前面的对勾去掉就可以了 阅读全文

posted @ 2013-08-23 10:45 AngelLee2009 阅读(1852) 评论(0) 推荐(0)

Text类型的字段进行数据替换
摘要:一、text不大于8000 varchar和nvarchar类型是支持replace函数的,所以如果你的text不超过8000,可以先转换成前面两种类型再使用replace。UPDATE News SET CONTENT=replace(cast(CONTENT as varchar(max)),'http://192.168.0.111/','') 二、text大于8000CREATE TABLE tb(col ntext) INSERT tb VALUES(REPLICATE( '0001,0002,0003,0004,0005,0006,0007, 阅读全文

posted @ 2013-07-23 12:18 AngelLee2009 阅读(792) 评论(0) 推荐(0)

SQLite 连接两个字符串
摘要:SQLite中,连接字符串不是使用+,而是使用|| 示例:SELECT 'I''M '||'Chinese.' 将输出 I'M Chinese. 特别说明:1、SELECT 'I''M '+'Chinese.' 将输出0,个人认为,在“+”运算中,SQLite将两个字符串开始部分的数字部分进行加法运算。 特别说明:2、 默认情况下, '是字符串的边界符, 如果在字符串中包含', 则必须使用两个', 第1个'就是转义符。 阅读全文

posted @ 2013-07-23 11:57 AngelLee2009 阅读(29162) 评论(0) 推荐(2)

基于虚拟日志压缩的数据同步方案
摘要:来源:http://wenku.baidu.com/view/61976c005f0e7cd184253698.html 阅读全文

posted @ 2013-07-21 18:33 AngelLee2009 阅读(155) 评论(0) 推荐(0)

数据库同步中差异数据捕获方案设计与实现
摘要:摘要:差异数据捕获是数据库同步的基础,对其它环节的影响也非常大。差异数据捕获不仅要获得复制对象的变化序列或当前映像.还要在对等式复制时提供尽可能详细的控制信息。该文在分析目前常用的差异数据捕获方法之后,提出了一种时间戳与触发器相结合的设计方案并加以实现。1 引言 近年来.分布式数据库的设计在国内许多系统中的应用日渐广泛,越来越多的政府机构、高校和企业构建了自己的数据中心。以集合单位内部各部门的数据.用以解决制约单位信息化建设的“信息孤岛”问题。而如何使各部门未来的变化信息能够及时反映到数据中心中,即数据同步问题。这一问题受到专家和商业界的广泛关注,数据库数据同步成为一个重要的研究方向。目... 阅读全文

posted @ 2013-07-21 17:44 AngelLee2009 阅读(2440) 评论(0) 推荐(0)

SQL Server Replace函数
摘要:REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。语法REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )参数'string_expression1'待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。'string_expression2'待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。'st 阅读全文

posted @ 2013-07-09 19:12 AngelLee2009 阅读(335) 评论(0) 推荐(0)

SQLServer2008设置开启远程连接
摘要:SQL Server 2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置: 1,SQL Server Management Studio Express(简写SSMS) 2,SQL Server 配置管理器/SQL Server Configuration Manager(简写SSCM)有两点要注意: 1,2005的外围应用配置器在2008中换了地方 2,有些设置生效需要重启一下SQL ServerStep 1: 打开SSMS,用windows身份连接数据库,登录后,右键选择“属性”Step 2.. 阅读全文

posted @ 2013-07-09 15:23 AngelLee2009 阅读(358) 评论(0) 推荐(0)

查看SQL Server的版本号
摘要:一、查看SQL Server 2005版本号SELECT@@VERSION显示以下信息:Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Express Edition on Windows NT 5.2 (Build 3790: Service Pack 2)SELECTSERVERPROPERTY('productversion'),SERVERPROPERTY('productl 阅读全文

posted @ 2011-10-31 13:29 AngelLee2009 阅读(529) 评论(0) 推荐(0)

sql产生随机数
摘要:使用RAND(),结果是类似于这样的随机小数:0.615942003695649SELECTFLOOR(RAND()*N)---生成的数是这样的:12.0SELECTCAST(FLOOR(RAND()*N)ASINT)---生成的数是这样的:12SELECTCEILING(RAND()*N)---生成的数是这样的:12.0SELECTCAST(CEILING(RAND()*N)ASINT)---生成的数是这样的:12 前两种方法:生成的随机数在0至N-1之间;后两种方法:生成的随机数在1至N之间。 FLOOR函数返回小于或等于所给数字表达式的最大整数。CEILING函数返回大于或等于给数字表. 阅读全文

posted @ 2011-10-31 01:24 AngelLee2009 阅读(14835) 评论(0) 推荐(0)

sql产生随机时间
摘要:--建立过程CREATEPROCEDUREGetTime@BeginTimeVARCHAR(5),@EndTimeVARCHAR(5),@RandTimeVARCHAR(5)OUTPUTASSET@RandTime=(SELECTSUBSTRING(CONVERT(VARCHAR,CONVERT(DATETIME,100/RAND(),120),120),12,5))WHILE@RandTime<=@BeginTimeor@RandTime>=@EndTimeSET@RandTime=(SELECTSUBSTRING(CONVERT(VARCHAR,CONVERT(DATETIME 阅读全文

posted @ 2011-10-31 01:14 AngelLee2009 阅读(1997) 评论(0) 推荐(0)

sql整数转换成定长字符串,如果结果不足所指定的长度,就在前面补“0”
摘要:DECLARE@numINTDECLARE@lengthINTSET@num=123SET@length=10selectREPLICATE('0',@length-DATALENGTH(CONVERT(VARCHAR,@num)))+CONVERT(VARCHAR,@num) 阅读全文

posted @ 2011-10-31 01:01 AngelLee2009 阅读(3663) 评论(0) 推荐(0)

sql随机产生姓名
摘要:declare@firstNamesvarchar(max)/*保存名的集合*/declare@lastNamesvarchar(max)/*保存姓的集合*/set@firstNames='芳,海,亮,红,君,军,俊,江,河,湖,波,杰,山,燕,阳,洋,涛,斌,彬,宾,微,伟,威,薇,刚,倩'/*必须只有一个字*/set@lastNames='刘,方,王,李,赵,孙,钱,胡,易,黄,温,丁,周,魏,陈,曾,涂'/*必须只有一个字*/declare@lastNamesLengthintdeclare@firstNamesLengthintset@lastNames 阅读全文

posted @ 2011-10-31 00:56 AngelLee2009 阅读(1145) 评论(0) 推荐(0)

sql查询字符串拼接
摘要:拼串的时候用char(39) 代替单引号,char(37)代替%,如:DECLARE@sqlVARCHAR(200)DECLARE@strVARCHAR(200)SET@str='bird'SET@sql='SELECT*FROMCategoryWHERENameLIKE'+char(39)+char(37)+@str+char(37)+char(39)EXEC(@sql) 阅读全文

posted @ 2011-10-31 00:44 AngelLee2009 阅读(1347) 评论(0) 推荐(0)

数据库索引
摘要:数据库索引什么是索引?索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。数据库索引好比是一本书前面的目录,能加快数据库的查询速度。建立索引的目的是什么?建立索引的目的是加快对表中记录的查找或排序。为表设置索引是要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。使用索引的好处?第一... 阅读全文

posted @ 2011-10-13 13:30 AngelLee2009 阅读(610) 评论(0) 推荐(0)

导航