随笔分类 -  SQL

摘要:1、使用@@Rowcount 系统变量查看修改了多少条记录Create Trigger 删除记录ON 数据表名After DeleteASBegin print '此次操作删除了'+Cast(@@Rowcount as varchar)+'条记录'End2、查看某个字段是否被修改Create Trigger 禁止修改折扣 On 订单明细 Instead Of UpdateAS BEGIN Set Nocount On; if update(折扣) print '不允许修改折扣信息'END3、返回错误信息Create Trigger 禁止修改折扣 阅读全文
posted @ 2011-04-04 23:09 芬奇 阅读(331) 评论(0) 推荐(0)
摘要:1、DDL触发器的介绍及作用 DDL触发器是 SQL Server 2005新增的一个触发器类型,是一种特殊的触发器,它在响应数据定义语言(DDL)语句时触发。与DML触发器不同,DML触发器是响应Insert、Update、Delete语句,DDL是响应Create、Alter、Drop开头的数据定义语句而激活的。 DDL触发器的用处:☀ 阻止数据库里库的架构或数据表的架构的修改。 ☀ 防止误操作修改数据库架构或者表结构。 ☀ 在修改某个表的结构时同时修改另一个表的结构。 ☀ 记录数据库或数据表结构修改的日志信息。2、设计及定义DDL触发器实例建立一个DDL触发器,保护数据表结构不被修改或删 阅读全文
posted @ 2011-04-04 22:25 芬奇 阅读(407) 评论(0) 推荐(0)
摘要:1、Instead Of触发器的工作原理 Instead Of触发器与After触发器的工作流程是不一样。After触发器是在SQLSERVER服务器接到执行SQL语句请求之后,先建立Inserted和Updated临时表,然后在更改物理表上的数据,最后才激活触发器程序。而Instead Of触发器在SQLSERVER服务器接到执行SQL语句请求,建立Inserted和Updated临时表后就激活了Instead Of触发器程序,至于SQL语句的请求如何操作数据就不在管了,把执行权全权叫给了Instead Of触发器。2、Instead Of触发器使用范围 ♣ 数据表里的数据禁止修改 ♣ 有可 阅读全文
posted @ 2011-03-30 16:01 芬奇 阅读(5614) 评论(0) 推荐(1)
摘要:1、After触发器的工作原理 After触发器是在记录变更完成之后才被激活执行的。以Delete操作为例,当SQLSERVER 接收到一个Delete请求时,SQLSERVER先将需要删除的记录存放到 Deleted 表里面。然后把物理表里面的数据删除,再激活 After 触发器,执行触发器里面的代码。执行完成之后从内存中删除 Deleted 表。(在触发器里面可以使用 Rollback Transaction 回滚操作,取消删除) 注意: ❤ After触发器只能建立在数据表上。 ❤ 一个数据表可以有多个触发器,但是一个触发器只能对应一个表。 ❤ Truncate Table 语句虽然类似 阅读全文
posted @ 2011-03-30 10:20 芬奇 阅读(1273) 评论(0) 推荐(0)
摘要:记得刚接触触发器是5年前的事了,那时候天天写触发器和存储过程,但是最近一段时间面试有些东西竟然忘记了。在此重新学习与认识,顺便学习下SQL2005的一些新特性。 1、触发器的概念 触发器可以理解为是针对数据表(或数据库)的特殊的存储过程。当这个表发生了Insert,Update或者Delete操作时,会自动激活执行,可以处理各种复杂的操作。 在SQL2005中,触发器有了新功能:在数据表或数据库发生Create、Alter或Drop操作时,也会自动激活执行了。2、触发器的作用或用途 a. 完成比约束更复杂的数据约束,保证数据的完整性. b. 检查做执行的SQL语句是否被允许. c. 当这个数据 阅读全文
posted @ 2011-03-28 23:16 芬奇 阅读(501) 评论(0) 推荐(0)
摘要:Visual Studio 2008不能创建sqlce数据库连接出现:无法添加数据连接。未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc Version=10.0.0.0, Culture=nentral,PublicKeyToken=89845dcd8080cc91”或它的某一个信赖项。系统找不到指定的文件。可以按照下面的... 阅读全文
posted @ 2009-12-22 14:17 芬奇 阅读(2811) 评论(0) 推荐(0)
摘要:这几天写程序要用到字符串的真实长度,可是MSsql 的len函数只能获取字的长度,无法获取真实的长度也就是在网页里面所占的字符因为英文“a”与中文 "的"所占的长度不同于是google下找到函数datalength可以获得字符的真实长度如:[代码]-----------------------分割线--------------------------------------... 阅读全文
posted @ 2009-04-09 17:13 芬奇 阅读(731) 评论(0) 推荐(0)
摘要:1.插入操作(Insert) Inserted表有数据,Deleted表无数据 2.删除操作(Delete) Inserted表无数据,Deleted表有数据 3.更新操作(Update) Inserted表有数据(新数据),Deleted表有数据(旧数据) 阅读全文
posted @ 2009-03-11 14:33 芬奇 阅读(591) 评论(1) 推荐(1)
摘要:[代码] 阅读全文
posted @ 2009-03-10 18:35 芬奇 阅读(360) 评论(0) 推荐(0)
摘要:ALTER procedure GetTableColumns @TableName varchar(100) as begin -----------------开始 SELECT d.name N'表名', 阅读全文
posted @ 2008-06-24 10:05 芬奇 阅读(665) 评论(0) 推荐(0)