6-21笔记

来源:互联网 发布:asp个人业务网站源码 编辑:程序博客网 时间:2024/06/01 14:23
1、类型初始值设定项发生异常,一般就是该类型在使用(初始化)时候发生的异常。包括构造函数中、字段的 默认值等。尤其是静态类中常会遇到,因为静态类的字段在类第一次使用前会初始化一下。
 
2、游标,可以把一个集合当做一条一条数据来处理这就是游标。一般情况下不会用到,效率要比集合低得多。以后能用集合做的,就不要用游标做,效率太低了。

--1.定义游标
declare cur_MyStudent cursor fast_forward for select * from MyStudent
--2.打开游标
open cur_MyStudent
--2.1对游标的操作
--将每条数据读取并输出
--2.1.1将游标向后移动一条
fetch next from cur_MyStudent
--将游标循环向后移动,直到末尾。
while @@fetch_status=0
begin
fetch next from cur_MyStudent
end
--3.关闭游标
close cur_MyStudent
--4.释放资源
deallocate cur_MyStudent


3、更新老师工资

4、

update TblTeacher set tTSalary=tTSalary-(select reward from TblTeacherSalary where TblTeacherSalary.tTid=TblTeacher.tTId )
和下面的语句的功能差不多,都可以实现的
update TblTeacher set tTSalary=tTSalary+b.reward from TblTeacherSalary b where TblTeacher.ttid=b.ttid
5、通过游标来更新

6、参数一般用在where语句后面,或者赋值时候:select @count .... from,不能把表明,列名用参数来替代。使用动态sql非常灵活,但不可避免注入攻击,通过各种手段只能减小危害,不能完全避免,比如设置变量的最大长度,将用户输入的所有内容中,替换关键字,特殊符号等等,设置用户的权限只能查询,禁用数据库中一些危险功能等等。
7、
用临时表可以把里面的数据带出来

8、
declare @sql nvarchar(100)
set @sql='select * from';
set @sql=@sql+' TblClass'
exec(@sql)
动态Sql语句

使用动态SQL非常灵活,但不可避免注入攻击,通过各种手段只能减小危害,不能完全避免。比如:设置变量的最大长度,将用户输入的内容替换所有的关键字,特殊符号,等等,设置用户的权限,只能查询,禁用数据库一i些危险功能  。

参数一般用在where语句后,或者赋值时,select @count=...from, 表名,列名不能用参数来代替,比如select @col1,@col2 from @biao1,这样是不可以的。
表明有参数来代替,只能用拼接字符串,用临时表那样
 
0 0