-
浅析SQL存储过程和事务处理
在数据库编程中,事务是经常需要用到的技术,在.net平台上,事务处理是非常好用的,但是在SqlServer数据库的存储过程中如何使用事务来完成数据的批量操作呢?解决方案如下:大概都是这样处理的:复制代码代码如下:CREATEPROCRegisterUser(@usrNamevarchar(30),@usrPasswdvarchar(30),@ageint,@PhoneNumvarchar(20),@Addressvarchar(50))ASBEGINBEGINTRAN--显示定义并开始一个事务SETXACT_ABORTON--表示遇到错误立即回滚INSERTINTOUSER(userName,userPasswd)values(@usrName,@usrPasswd)IF@@error<>0 --发生错误BEGIN ROLLBACKTRANSACTION RETURN0ENDELSEBEGIN COMMITTRANSACTION RETURN1  ...
数据库操作教程 2022-09-23 16:47:04 -
SQLServer常用存储过程及示例
分页:复制代码代码如下:/*分页查找数据*/CREATEPROCEDURE[dbo].[GetRecordSet]@strSqlvarchar(8000),--查询sql,如select*from[user]@PageIndexint,--查询当页号@PageSizeint--每页显示记录ASsetnocountondeclare@p1intdeclare@currentPageintset@currentPage=0declare@RowCountintset@RowCount=0declare@PageCountintset@PageCount=0execsp_cursoropen@p1output,@strSql,@scrollopt=1,@ccopt=1,@rowcount=@rowCountoutput--得到总记录数select@PageCount=ceiling(1.0*@rowCount/@pagesize)--得到总页数,@currentPage=(@PageIndex-1)*@PageSize+1select@RowCount,@PageCountexecsp_cu...
数据库操作教程 2022-09-23 16:46:51 -
查询存储过程中特定字符的方法
把xx替换成具体字符,如“深圳”,sql语句如下:复制代码代码如下:select*fromuser_sourcetwhereinstr(lower(t.text),'xx')>0;select*fromall_sourcetwheret...
数据库操作教程 2022-09-23 16:46:32 -
SQL实现递归及存储过程中In()参数传递解决方案详解
1.SQL递归在SQLServer中,我们可以利用表表达式来实现递归算法,一般用于阻止机构的加载及相关性处理。-->实现:假设OrganiseUnit(组织机构表)中主要的三个字段为OrganiseUnitID(组织机构主键ID)、ParentOrganiseUnitID(组织机构父ID)、OrganiseName(组织机构名称)复制代码代码如下:withorganiseas(select*fromOrganiseUnitwhereOrganiseUnit.OrganiseUnitID=@OrganiseUnitIDunionallselectOrganiseUnit.*fromorganise,OrganiseUnitwhereorganise.OrganiseUnitID=OrganiseUnit.ParentOrganiseUnitID)selectOrganiseNamefromorganise上述sql语句实现了,传入组织机构主键ID,查询出其对应组织机构名称和其全部下级组织机构名称...
数据库操作教程 2022-09-23 16:46:20 -
使用sqlserver存储过程sp_send_dbmail发送邮件配置方法(图文)
1)创建配置文件和帐户(创建一个配置文件和配置数据库邮件向导,用以访问配置数据库邮件管理节点中的数据库邮件节点及其上下文菜单中使用的帐户。) 打开数据库服务器------管理-------数据库邮件------右键---配置数据库邮件(同时也可以看到管理已经配置好的邮件账户和配置文件) 这里的配置文件名,在使用sp_send_dbmail时会作为参数使用点“添加” 其中,账户名可以任意指定(描述功能即可),重点是邮件发送服务器(SMTP)的配置:电子邮件地址为发送方邮件地址,显示名称为发送方名称,答复电子邮件(可以同电子邮件地址相同),服务器名称为服务器发送服务器(eg:QQ的为smtp.exmail.qq.com)端口号不变;SMTP身份验证:基本身份验证(配置自己的邮件发送方地址和密码)...
数据库操作教程 2022-09-23 16:45:51 -
SqlServer2000、2005分页存储过程整理第1/3页
sqlserver2005的分页存储过程分3个版本,一个是没有优化过的,一个是优化过的,最后一个支持join的,sqlserver2000的分页存储过程,也可以运行在sqlserver2005上,但是性能没有sqlserver2005的版本好。在最后我还附带了一个二分法的分页存储过程,也很好用的说哈~~1.SqlServer2005:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEproc[dbo].[up_Page2005]@TableNamevarchar(50),--表名@Fieldsvarchar(5000)='*',--字段名(全部字段为*)@OrderFieldvarchar(5000),--排序字段(必须!支持多字段)@sqlWherevarchar(5000)=Null,--条件语句(不用加where)@pageSizeint,--每页多少条记录@pageIndexint=1,--指定当前为第几页@TotalPageintoutput--返回总页数asbeginBeginTran--开始事务Declare@sqlnvarch...
数据库操作教程 2022-09-23 16:45:48 -
SQL数据库存储过程示例解析
什么是存储过程:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。存储过程的好处:1.由于数据库执行动作时,是先编译后执行的...
数据库操作教程 2022-09-23 16:44:46 -
Sql中存储过程的定义、修改和删除操作
1.存储过程的分类系统存储过程本地存储过程(用户自定义)临时存储过程(局部【#】、全局【##】临时存储过程)2.创建存储过程--选出价格区间的商品信息createproceduresp_goods_price@minpricefloat,@maxpricefloatasselect*fromgoodswhereprice>=@minpriceandprice<=@maxpricego执行存储过程:executesp_goods_price20020003.修改存储过程createproceduresp_goods_betw@minpricefloat=200,@maxpricefloat=3000asselect*fromgoodswhereprice>=@minpriceandprice<=@maxpricego4.删除存储过程dropproceduresp_goods_price5.查看存储过程sp_helptextprocedureNamesp_helpprocedureName6.重命名存储过程execsp_renameoldNamenewName**局...
数据库操作教程 2022-09-23 16:43:39 -
SQLServer日期和时间的内部存储过程
在SQLServer的内部存储中,日期和时间不是以字符串的形式存储的,而是使用整数来存储的。使用特定的格式来区分日期部分和时间部分的偏移量,并通过基准日期和基准时间来还原真实的数据...
数据库操作教程 2022-09-23 16:43:32 -
sql存储过程实例--动态根据表数据复制一个表的数据到另一个表
动态根据表数据复制一个表的数据到另一个表把track表的记录根据mac_id后两位数字,复制到对应track_?的表中如:mac_id=12345678910,则后两位10对应表为track_10,就把此记录复制到track_10中创建一个sub_track的存储过程实现:--创建一个名为sub_track的存储过程CREATEPROCEDUREsub_track()begindeclareiint;--定义循环变量iset@imei=0;--定义imei最后两位set@t_count=0;--定义表有多少条记录变量SETi=0;SELECTCOUNT(*)INTO@t_countFROMtrack;--获取表的条数whilei<=@t_countdo--循环SELECTRIGHT(mac_id,2)INTO@imeiFROMtrackORDERBYgpstimeDESCLIMITi,1;--获取imei最后两位set@imei=CONVERT(@imei,SIGNED);--转为数字--SQL语句set@sql1="(mac_id,mac_type,channel,type,x...
数据库操作教程 2022-09-23 16:43:15 -
sqlserver2008调试存储过程的完整步骤
前言SQLSERVER2005中不知因何去掉了很重要的DEBUGGER功能,要调试,必须要安装VS2005专业版或者更高版本。非常不方便...
数据库操作教程 2022-09-23 16:42:28 -
模糊查询的通用存储过程
复制代码代码如下:IFExists(Select1FromsysobjectsWhereName='sp_search'AndxType='P')DropProceduresp_searchgo/*模糊查询的通用存储过程createbysxm,date2009-7-14参数:@table_name表名@condition条件*/createprocsp_search(@table_namevarchar(200),@conditionvarchar(100))withencryptionasbegindeclare@strsqlvarchar(8000)declare@col_namevarchar(100)declare@str_colsvarchar(8000)set@str_cols=''--查询表中的列名declarecur_1cursorforselectcolumn_namefrominformation_schema.columnswheretable_name=@table_nameopencur_1fetchcur_1into@col_namewhile@@fetch...
数据库操作教程 2022-09-23 16:41:40