维护数据库的完整性一致性你喜欢用触发器还是自写业务逻辑?为什么?
答尽可能用约束(包括CHECK主键唯一键外键非空字段)实现这种方式的效率最好其次用触发器这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性一致性最后再考虑用自写业务逻辑实现但这种方式效率最低编程最复杂当为下下之策
什么是事务?什么是锁?
答事务是指一个工作单元它包含了一组数据操作命令并且所有的命令作为一个整体一起向系统提交或撤消请求操作即这组命令要么都执行要么都不执行
锁是在多用户环境中对数据的访问的限制SqlServer自动锁定特定记录字段或文件防止用户访问以维护数据安全或防止并发数据操作问题锁可以保证事务的完整性和并发性
什么是索引有什么优点?
答索引象书的目录类似索引使数据库程序无需扫描整个表就可以在其中找到所需要的数据索引包含了一个表中包含值的列表其中包含了各个值的行所存储的位置索引可以是单个或一组列索引提供的表中数据的逻辑位置合理划分索引能够大大提高数据库性能
视图是什么?游标是什么?
答视图是一种虚拟表虚拟表具有和物理表相同的功能可以对虚拟表进行增该查操作视图通常是一个或多个表的行或列的子集视图的结果更容易理解(修改视图对基表不影响)获取数据更容易(相比多表查询更方便)限制数据检索(比如需要隐藏某些行或列)维护更方便
游标对查询出来的结果集作为一个单元来有效的处理游标可以定位在结果集的特定行从结果集的当前位置检索一行或多行可以对结果集中当前位置进行修改
什么是存储过程?有什么优点?
答存储过程是一组予编译的SQL语句它的优点有允许模块化程序设计就是说只需要创建一次过程以后在程序中就可以调用该过程任意次允许更快执行如果某操作需要执行大量SQL语句或重复执行存储过程比SQL语句执行的要快减少网络流量例如一个需要数百行的SQL代码的操作有一条执行语句完成不需要在网络中发送数百行代码更好的安全机制对于没有权限执行存储过程的用户也可授权他们执行存储过程
什么是触发器?
答出发器是一种特殊类型的存储过程出发器主要通过事件触发而被执行的触发器的优点强化约束触发器能够提供比CHECK约束跟蹤变化触发器可以跟蹤数据库内的操作从而不允许未经允许许可的更新和变化联级运算比如某个表上的触发器中包含对另一个表的数据操作而该操作又导致该表上的触发器被触发