C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  496 随笔 :: 0 文章 :: 634 评论 :: 571万 阅读

07 2013 档案

摘要:触发器可以做很多事情,但也会带来很多问题。使用它的技巧在于在适当的时候使用,而不要在不适当的时候使用它们。 触发器的一些常见用途如下:弹性参照完整性:实现很多DRI不能实现的操作(例如,跨数据库或服务器的参照完整性以及很多复杂的关系类型)。创建神级跟踪:这意味写出的记录不仅跟踪大多数当前的数据,还包括对每个记录进行实际修改的历史数据。随着SQL Server2008中的更改数据跟踪功能的出现,创建审计跟踪不再那么流行,但以前使用的就是触发器。执行与CHECK约束类似的功能,但是跨表,跨数据库甚至是跨服务器使用。用自己的语句代替用户的操作语句。一、触发器的概念 触发器是一种特殊类型的存储... 阅读全文
posted @ 2013-07-05 11:42 逆心 阅读(10591) 评论(1) 推荐(1) 编辑

摘要:锁是一种防止在某对象执行动作的一个进程与已在该对象上执行的其他进行相冲突的机制。也就是说,如果有其他人在操作某个对象,那么你旧不能在该对象上进行操作。你能否执行操作取决于其他用户正在进行的操作。通过锁可以防止的问题 锁可以解决以下4种主要问题:脏读非重复性读取幻读丢失更新 1、脏读 如果一个事务读取的记录是另一个未完成事务的一部分,那么这时就发生了脏读。如果第一个事务正常完成,那么就有什么问题。但是,如果前一个事务回滚了呢,那将从数据库从未发生的事务中获取了信息。 2、非重复性读取 很容易将非重复性读取和脏读混淆。如果一个事务中两次读取记录,而另一个事务在这期间改变了数据,就会... 阅读全文
posted @ 2013-07-03 18:11 逆心 阅读(4356) 评论(0) 推荐(0) 编辑

摘要:事务全部是关于原子性的。原子性的概念是指可以把一些事情当做一个单元来看待。从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合。 为了理解事务的概念,需要能够定义非常明确的边界。事务要有非常明确的开始和结束点。SQL Server中的每一条SELECT、INSERT、UPD... 阅读全文
posted @ 2013-07-03 16:42 逆心 阅读(65507) 评论(5) 推荐(15) 编辑

摘要:一、表变量 表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是表变量通过DECLARE @local_variable语句进行定义。 表变量的特征:表变量拥有特定作用域(在当前批处理语句中,但不在任何当前批处理语句调用的存储过程和函数中),表变量在批处理结束后自动被清除。表变量较临时表产生更少的存储过程重编译。针对表变量的事务仅仅在更新数据时生效,所以锁和日.. 阅读全文
posted @ 2013-07-03 14:43 逆心 阅读(69556) 评论(9) 推荐(15) 编辑

摘要:SQL Server系统存储过程也是好几百个,算了,还是写几个常用的。 1、sp_help 查询表的信息 执行存储过程: sp_help Person 显示结果如下: 妈了个B,有了这张图,你还不懂怎么看一张表有那些信息,那哥以后都不学SQL Server了。另外,还有约束,存储过程,自定义函数等等信息,以后补充。 2、sp_helpdb 查看数据库信息 执行存储过程: sp_helpdb TestDataCenter 显示结果如下: 当然也可以不带参数,显示当前数据库连接下的所有数据库信息。 这张图几乎包含了数据库的所有信息了。有了这张图,想了解一个数据库的... 阅读全文
posted @ 2013-07-02 23:22 逆心 阅读(5822) 评论(0) 推荐(1) 编辑

摘要:.Net的字符串其实还是有很多东西可以写的。但是最近在学习SQL Server,只好先做下最近学习到的一些巧用,妙用之类的东西。 巧用String.Join拼接字串数组,字符串集合为字符串。如果在之前,一个foreach早就敲上去了。虽然效率差多,但是少了个foreach,还是美观不少的。 ... 阅读全文
posted @ 2013-07-02 22:48 逆心 阅读(819) 评论(0) 推荐(1) 编辑

摘要:UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用。UDF和存储过程的主要区别在于返回结果的方式。 使用UDF时可传入参数,但不可传出参数。输出参数的概念被更为健壮的返回值取代了。和系统函数一样,可以返回标量值,这个值的好处是它并不像在存储过程中那样只限于整形数据类型,而是可以返回大多数SQL Server数据类型。 UDF有以下两种类型: 返回标量值的UDF。 返回表的UDF。 创建语法:CREATE FUNCTION [.]([ [AS] [.] [= [READONLY]] [,...n] ])R... 阅读全文
posted @ 2013-07-02 17:55 逆心 阅读(5362) 评论(1) 推荐(2) 编辑

摘要:存储过程(stored procedure)有时也称sproc,它是真正的脚本,更准确地说,它是批处理(batch),但都不是很确切,它存储与数据库而不是单独的文件中。 存储过程中有输入参数,输出参数以及返回值等。一、创建存储过程 创建存储过程的方法和创建数据库中任何其他对象一样,除了他使用AS关键字外。存储过程的基本语法如下: CREATE PROCEDURE|PROC [ [schema.] [VARYING] [=] [OUT[PUT]] [READONLY] [, [schema.] [VARYING] [=] [OUT[PUT]] [READONLY] [,..... 阅读全文
posted @ 2013-07-02 13:18 逆心 阅读(3374) 评论(2) 推荐(2) 编辑

摘要:CAST和CONVERT都经常被使用。特别提取出来作为一篇文章,方便查找。 CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。 既然CONVERT包括了CAST的所有功能,而且CONVERT还能进行日期转换,那么为什么需要使用CAST呢?实际上,这是为了ANSI/ISO兼容。CAST是ANSI兼容的,而CONVERT则不是。 语法: CAST (expression AS data_type [ (length ) ]) CONVERT (data_type [ ( le... 阅读全文
posted @ 2013-07-01 21:58 逆心 阅读(67304) 评论(0) 推荐(5) 编辑

摘要:SQL Server系统视图非常的多,因此不可能一个一个地写,我最近一直在想,对于数据库的系统视图应该如何学,但是看了一下目录之后,我呆了,我觉得每个写一次,可能都要花费1个星期的时间,如果对每一个返回的列的作用都了解清楚,那不得了,你至少需要3个月的时间。后来我想了一个,不行,这种学习方法是错误的。我决定不再每一个系统视图都了解一次,我仅仅需要知道的是,通过系统视图能够做什么事情。 系统视图,存储的是关于整个数据库的东西。比如,一个数据库里面有哪些文件组,哪些表,哪些索引,哪些约束等等,都可以通过系统视图来获得。作用就是如此。 知道就可以了。但是也有一个问题,比如最近我想开发一个代码... 阅读全文
posted @ 2013-07-01 17:11 逆心 阅读(1380) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示