1、约束的操作
   Cascade, No Action理解
   当在创建约束时选上Cascade,或代码创建时添加ON Delete CASCADE,当在主表删除一行记录时, 外表相关联的记录都会同时删除
   当在创建约束时选上No Action,或代码创建时添加ON Delete No Action,当在主表删除一行记录时, 如果外表关联有数据, 则会提示出错
   上面的只是Delete, 其实Update也是一样的

   2、Unique约束
   如主键一样,让一列数据只能有唯一的值
  
   3、子查询
   .NET面试者一般在笔试时都会有一条, 选出表A里面第10-15行数据(ID是不连续的)
   这样就需要子查询来实现了, 记得五年前我第一次看到这个问题时, 我也不知道怎回事, 为什么不通过ID来查询呢?
   其实有时ID的不连续的, 所以需要用子查询了
   select top 5 * from [A] where orderid not in (select top 9 orderid from [A] order by Orderid asc) order by Orderid asc

   4、select into 和 insert into select 查询插入语句的区别
   select into from要求目标表不存在,因为在插入时会自动创建, 多用来创建临时表时用到

   insert into select 要求目标表存在,只是把数据复制过来
 
   5、视图的update, Insert数据
   update useraccountview set code='CA001' where userid=2
   Insert数据其实是在视图里面创建触发器(Instead of)来插入数据, 在触发器中通过inserted来取得需要的数据, 然后插入相应的表
   所以在视图中也是可以update与insert数据, 不过建议不要在视图中操作, 因为考虑不周会引起好多麻烦的问题, 如果多表的插入或update, 建议用存储过程来实现

   6、视图加密
   Create view User_View
     with cncryption 
   AS
   多上with cncryption就可以加密了, 这样就查看不到视图的内容, 另外 还有一个with schemabinding也有一点作用。 哈哈
 

posted on 2010-04-13 14:47  风浪  阅读(321)  评论(0编辑  收藏  举报