当前位置: 首页 > news >正文

做网站需求方案卫生局网站建设

做网站需求方案,卫生局网站建设,福田网络,自费社保太坑了亏大了1.锁 当多个用户同时对同一个数据进行修改时会产生并发问题#xff0c;使用事务就可以解决这个问题。但是为了防止其他用户修改另一个还没完成的事务中的数据#xff0c;就需要在事务中用到锁。 SQL Server 2008提供了多种锁模式#xff1a;排他锁#xff0c;共享锁#x…1.锁 当多个用户同时对同一个数据进行修改时会产生并发问题使用事务就可以解决这个问题。但是为了防止其他用户修改另一个还没完成的事务中的数据就需要在事务中用到锁。 SQL Server 2008提供了多种锁模式排他锁共享锁更新锁意向锁键范围锁架构锁和大容量更新锁。 查询sys.dm_tran_locks视图可以快速了解SQL Server 2008内的加锁情况。 SELECT * FROM sys.dm_tran_locks; 注关于锁的知识书中没细讲将在以后的博客中补充。 2.游标 游标是类似于C语言指针一样的结构是一种数据访问机制允许用户访问单独的数据行。游标主要由游标结果集和游标位置组成。游标结果集是定义游标的SELECT语句返回行的集合游标位置是指向这个结果集中某一行的指针。示例1用游标检索出student表中每行记录 Student表记录如图所示 执行下列语句 USE test DECLARE stu_cursor CURSOR FOR SELECT * FROM student--声明student表的游标stu OPEN stu_cursor--打开游标 FETCH NEXT FROM stu_cursor--移动该记录指针 WHILE FETCH_STATUS0--FETCH_STATUS用于保存FETCH操作的结束信息0表示有记录检索成功 BEGIN FETCH NEXT FROM stu_cursor--游标指针移动到下一条记录 END CLOSE stu_cursor--关闭游标 DEALLOCATE stu_cursor--释放游标资源 结果如图所示 2.1.游标定义的参数LOCAL和GLOBAL 游标定义参数LOCAL表示该游标只能作用于本次批处理或函数或存储过程。游标定义参数GLOBAL表示该游标可以作用于全局。 执行下列语句 DECLARE stu_cursor CURSOR LOCAL FOR SELECT * FROM student GO OPEN stu_cursor GO 执行结果如下 语句中声明了一个student表的游标stu_cursor在打开游标时提示游标不存在。因为该游标参数是LOCAL只能作用于当前批处理语句中而打开游标语句和声明语句不在一个批处理中。如果去掉第一个GO使两个语句在同一个批处理中就能顺利执行不会报错。 执行下列语句 DECLARE stu_cursor1 CURSOR GLOBAL FOR SELECT * FROM student GO OPEN stu_cursor1 GO 执行结果命令已成功完成 和LOCAL参数对比GOLBAL参数设置游标作用于全局因此OPEN和DECLARE语句不在同一个批处理中依然可以成功执行。 2.2.游标分为游标变量和游标类型 如下列语句 --语句1 DECLARE stu_cursor CURSOR FOR SELECT * FROM student--声明student表的游标名称为stu_cursor并赋值 GO--语句2 DECLARE stu_cursor CURSOR--声明游标类型的变量stu_cursor SET stu_cursorCURSOR FOR--给该变量赋值 SELECT * FROM student 在语句1中直接声明了一个游标并赋值而语句2中声明了游标类型的变量stu_cursor然后给该变量赋值。这两者是不同的。 2.3.游标参数FORWARD_ONLY和SCROLL FORWARD_ONLY参数设置游标只能从结果集的开始向结束方向读取使用FETCH语句时只能用NEXT而SCROLL参数设置游标可以从结果集的任意方向任意位置移动。如下列语句 --语句1默认FORWARD_ONLY DECLARE stu_cursor CURSOR LOCAL FOR SELECT * FROM student OPEN stu_cursor FETCH NEXT FROM stu_cursor GO --语句2FORWARD_ONLY参数FETCH时只能从开始往结束方向 DECLARE stu_cursor CURSOR FORWARD_ONLY LOCAL FOR SELECT * FROM student OPEN stu_cursor FETCH NEXT FROM stu_cursor GO --语句3SCROLL参数FETCH时可以从任意位置往任意方向 DECLARE stu_cursor CURSOR SCROLL LOCAL FOR SELECT * FROM student OPEN stu_cursor FETCH LAST FROM stu_cursor GO 2.4.游标的简单应用 示例2将student表中stu_enter_score大于600分的学生都减去100分 Student表中的数据如图所示 执行下列语句 --游标的简单应用 DECLARE stu_cursor CURSOR FORWARD_ONLY LOCAL FOR SELECT stu_no,stu_enter_score FROM student OPEN stu_cursor DECLARE score INT DECLARE stu_no VARCHAR(8) FETCH NEXT FROM stu_cursor INTO stu_no,score--把游标值赋值给变量score WHILE FETCH_STATUS0 BEGIN IF score600 BEGIN UPDATE student SET stu_enter_scorescore-100 WHERE stu_nostu_no END FETCH NEXT FROM stu_cursor INTO stu_no,score--把游标值赋值给变量score END CLOSE stu_cursor DEALLOCATE stu_cursor GO 结果如图所示 3.存储过程 存储过程是一组用于完成特定功能的语句集经过编译后存储在数据库中。在SQL Server 2008中既可以用T-SQL编写存储过程也可以用CLR编写存储过程。 3.1.用户定义的存储过程 该种存储过程是指封装了可重用代码的模块或者历程有2种类型T-SQL存储过程和CLR存储过程。 T-SQL存储过程是指保存的T-SQL语句集合 CLR存储过程是指对Microsoft .NET Framework公共语言运行时CLR方法的引用 3.2.扩展存储过程 扩展存储过程是指可以动态加载和运行的DLL允许使用编程语言如C语言创建自己的外部例程。扩展存储过程直接在SQL Server 2008的实例的地址空间中运行可以使用SQL Server扩展存储过程API完成编程。 3.3.系统存储过程 系统存储过程是指存储在源数据库中以sp开头的存储过程出现在每个系统定义数据库和用户定义数据库的sys架构中。 3.3.1.创建存储过程规则 在设计和创建存储过程时应该满足一定的约束和规则。 CREATE PROCEDURE定义自身可以包括任意数量和类型的SQL语句但下表中的语句除外。不能在存储过程的任何位置使用这些语句。可以引用在统一存储过程中创建的对象只要引用时已创建了该对象可以在存储过程内引用临时表如果在存储过程中创建了本地临时表该临时表仅为该存储过程而存在退出该存储过程后该临时表会消失如果执行的存储过程调用了另一个存储过程被调用的存储过程可以访问第一个存储过程的所有对象包括临时表如果执行对远程SQL Server 2008实例进行更改的远程存储过程这些更改将不能被回滚。远程存储过程不参与事务处理存储过程中的参数的最大数量为2100存储过程中的局部变量的最大数量仅受可用内存的限制根据可用内存的不同存储过程最大可达128MB语句语句语句CREATE AGGREGATECREATE RULECREATE DEFAULTCREATE SCHEMACREATE(ALTER) FUNCTIONCREATE(ALTER) TRIGGERCREATE(ALTER) PROCEDURECREATE(ALTER) VIEWSET PARSEONLYSET SHOWPLAN_ALLSET SHOWPLAN_TEXTSET SHOWPLAN_XMLUSE database_name3.3.2.限定存储过程内的名称 在存储过程内如果用于语句的对象没有限定架构则架构将默认为该存储过程的架构。如果创建该存储过程的用户没有限定INSERT,SELECT,UPDATE或DELETE语句中引用的表名或试图名则默认情况下通过该存储过程进行的访问将受到该过程创建者权限的限制。如果有其他用户要使用存储过程则所有用于数据定义语言DDL的语句如CREATE,ALTER,EXECUTE,DROP,DBCC或动态SQL语句的对象名应该用该对象架构的名称来限定。 3.3.3.加密存储过程的定义 如果要创建存储过程并确保其他用户无法查看该存储过程的定义则可以使用WITH ENCRYPTION这样过程定义将以不可读的形式存储。 3.3.4.SET语句选项 当创建或者更改T-SQL存储过程后数据库引擎将保存SET QUOTED_IDENTIFIER和SET ANSI_NULLS的设置执行存储过程时将使用这些原始设置而忽略任何客户端会话的ET QUOTED_IDENTIFIER和SET ANSI_NULLS设置。其他SET选项在创建或更改存储过程后不保存。 3.4.使用存储过程 3.4.1.创建存储过程 示例3将示例2用存储过程实现 Student表的数据如图所示 执行下列语句 CREATE PROCEDURE alter_data a int--参数 AS BEGIN DECLARE stu_cursor CURSOR FORWARD_ONLY LOCAL FOR SELECT stu_no,stu_enter_score FROM student OPEN stu_cursor DECLARE score INT DECLARE stu_no VARCHAR(8) FETCH NEXT FROM stu_cursor INTO stu_no,score--把游标值赋值给变量score WHILE FETCH_STATUS0 BEGIN IF scorea BEGIN UPDATE student SET stu_enter_scorescore-100 WHERE stu_nostu_no END FETCH NEXT FROM stu_cursor INTO stu_no,score--把游标值赋值给变量score END CLOSE stu_cursor DEALLOCATE stu_cursor END GO EXEC dbo.alter_data 600 结果如图所示 3.4.2.查看存储过程 可以通过使用系统存储过程或者目录视图查看存储过程的定义 3.4.2.1.图形化界面 如下图 3.4.2.2.系统存储过程sp_helptext查看存储过程定义 执行下列语句 EXEC sp_helptext alter_data 结果如图所示 3.4.2.3.系统存储过程sp_depends查看存储过程相关信息 执行下列语句 EXEC sp_depends alter_data 结果如图所示 3.4.2.4.目录视图查看存储过程 执行下列语句 SELECT * FROM sys.procedures 结果如图所示 3.4.3.修改存储过程 用ALTER PROCEDURE语句修改存储过程只需将上面示例中的CREATE修改成ALTER运行就行了。 3.4.4.删除存储过程 执行下列语句删除存储过程 DROP PROCEDURE alter_data 转载于:https://www.cnblogs.com/kukubear0/p/9319361.html
http://www.huolong8.cn/news/26726/

相关文章:

  • 中堂镇做网站h5制作微信小程序
  • 广州 网站建设 行价南宁关键词自然排名
  • 小程序开发平台花多少钱seo培训公司
  • dede织梦网站桐乡市建设局官方网站
  • 建站之星模板下载网站网站弹屏广告怎么做的
  • 长春网站开发招聘织梦做的网站页面打不开
  • 网站建设投票主题室内设计在线设计软件
  • 沈阳网站推广¥做下拉去118crapp制作步骤
  • 网站当前位置怎么做营销策略分析论文
  • 吉林市建设厅网站深圳定制网站制作
  • 主机屋 建网站教程新品上市新闻稿
  • 社工站建站流程网站开发中常用的技术和工具
  • 做网站字体规范建站宝盒合作
  • 无锡富通电力建设有限公司网站阳江保安招聘网
  • 漳州网站建设多少钱网站外链建设周期
  • php网站搬家教程注销建设工程规划许可证在哪个网站
  • 网站建设背景文字建设网络平台交印花税
  • 网站目录字典vi设计开题报告
  • 池州市建设管理处网站商丘猎狐网络
  • 企业网站优化推广怎么做注册公司需要什么材料和手续2022
  • 网页设计与网站建设 石油大学国家工商注册查询系统官网
  • 电商网站建设方向企业所得税怎么征收比例
  • 专业网站建设定制公司手机网站建设公司
  • 厦门唯一官方网站宜昌做网站优化
  • 成都铁路局贵阳建设指挥部网站c语言开发网站
  • 陕西企业网站建设哪家专业网站建设与网页设计开题报告
  • 非法期货做网站网站建设在国内外有何趋势
  • 汕头公司建站模板做网站汉狮网络
  • 做网站 博客信息系统开发过程
  • 欧美设计网站本溪市做网站公司