MSSQL手札一 MSSQL的游标】的更多相关文章

和oracle的不同,MSSQL中没有隐式游标的说法,也没有%type和%rowtype这样根据数据库字段实时更新变量含义的关键字,MSSQL的游标类似于oracle的显示游标,需要自己去手动关闭, 定义游标之后是在预先定义的变量里面进行游标循环,而不是oracle那样的结果集.如下: declare nex cursor for select [user_name],[birthdate] from T_user_info --在访问游标某行数据的时候需要定义变量,这个变量是和表里面的字段一一…
和oracle一样,sql也可以自己定义函数 一个返回值,引用DEMO如下: 编写一个函数,该函数,可以通过输入借书时间来判断是否到期,当借阅时间大于30天,返回已经过期:否则返回还未到期. CREATE FUNCTION IsDateout(@BDate datetime) ) AS BEGIN ) ) BEGIN SET @myresult='已过期' end else begin set @myresult='未到期' end RETURN (@myresult) END SELECT d…
--存储过程完成一段sql代码的封装 create proc trim --参数列表,多个间用逗号分隔 ) as --自定义代码段 ) set @str1=LTRIM(RTRIM(@str)) print @str1 --使用存储过程 exec trim ' abc ' --'abc' --===带输出参数的存储过程 --求两个数的和 create proc sum1 @num1 int, @num2 int, @result int output--表示这个参数可以将结果带出存储过程 as s…
触发器,就是在对表做DML操作的时候,触发一些其他的事件,触发器一般用在check约束更加复杂的约束上面,是一种特殊的存储过程,不可以被主动调用. 语法如下: CREATE TRIGGER trigger_name ON { table | view } --加密,加密之后不可以修改,但是可以调用或者删除,具体怎么解密,网上有超长的一段SQL代码,大家可以百度一下SQL存储过程/触发器解密 [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF }…
ALTER PROCEDURE [dbo].[ken_overtime_check](@p_use_code nvarchar(100),@p_table_name nvarchar(1000)) ASBEGIN declare @cursor_name cursor;declare @employeeid nvarchar(100);declare @cur_employeeid nvarchar(1000); SET NOCOUNT ON; begin try begin transacti…
一.SQL Server Management Studio(SMSS) 维护计划 [参考]SQL SERVER如何定期自动备份数据库 二.Windows 级 任务计划程序( MSSQL Express) 1) 新建Sql存储过程(master-可编程性-存储过程) USE [master] GO /****** Object: StoredProcedure [dbo].[sp_BackupDatabases] Script Date: 07/08/2019 15:22:51 ******/…
现在的数据库越来越多,如mgdb,我比较常用的是mysql,但有一天做项目需要连接SqlServer,就去找了个方法.找了很多无非就mssql模块和node-sqlserver模块,但node-sqlserver好像有很多限制和还要编译,感觉很麻烦,就用了mssql模块.mssql模块还是很简单的,因为,只是想连接SqlServer,所以,并没做太多的的深入,将官方文档上取出最简单的连接部分,有兴趣的人可以继续研究.安装就不说了,直接上代码. 我的SqlServer的名字是john,所以连接是用…
在PHP中使用了MSSQL数据库,恰巧数据库中又使用了Text类型字段,于是问题产生了.每次从数据库中查询得到的数据总是被莫名的截断,一开始是以为我使用的PHP框架中对字符串的长度有所限制,后来发现这是个较愚蠢的想法,因为在提交数据时可以将字符串内容全部的提交到数据库中,只是读取时发生此现象,于是上网搜寻是否有类似的问题.运气还挺不错,第一次搜索就找到了解决的办法,遂决定将其转贴在我的Blog中,供自己和广大PHP爱好者的不时之需.   有两种解决方案,如下:      一.修改php.ini来…
当用mssql存储数据采用 nchar 或 nvarchar  存储时 , 由于nchar 或 nvarcha 不支持 UCS-2 ( 即 SQLServer 不会按照 UTF-8 格式存储) 导致PHP 获取后会出现乱码 具体表现为:  汉字会变成???? 这种 而且没有提供类似 mysql_query("set charset utf8"); 这种方法. 解决方案: 1.直接修改 php.ini文件 ,直接修改 mssql.charset 为 mssql.charset = &qu…
简单解释下SCOPE_IDENTITY函数,IDENT_CURRENT函数以及@@IDENTITY全局变量的区别 SCOPE_IDENTITY函数返回当前作用域内,返回最后一次插入数据表的标识,意思是说,高并发的时候,它不会受到其它会话里的INSERT操作的影响 IDENT_CURRENT函数有点小意思,它不受作用域的影响,但是受限于具体的表,即它返回某表最后一条INSERT的返回标识,不受会话作用域影响,但是受到指定的表的影响 @@IDENTITY这个全局变量只受会话影响,不受具体表影响,也不…