博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年10月30日

摘要: -TOPn实现的通用分页存储过程(邹建)CREATEPROCsp_PageView@tbnamesysname,--要分页显示的表名@FieldKeynvarchar(1000),--用于定位记录的主键(惟一键)字段,可以是逗号分隔的多个字段@PageCurrentint=1,--要显示的页码@PageSizeint=10,--每页的大小(记录数)@FieldShownvarchar(1000)='',--以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段@FieldOrdernvarchar(1000)='',--以逗号分隔的排序字段列表,可以指定在字段 阅读全文

posted @ 2013-10-30 18:35 米粒3 阅读(198) 评论(0) 推荐(0) 编辑

摘要: 在开发过程中,很多时候要把结果集存放到临时表中,常用的方法有两种。一. SELECT INTO1. 使用select into会自动生成临时表,不需要事先创建12 select * into #temp from sysobjectsselect * from #temp2. 如果当前会话中,已存在同名的临时表1 select * into #temp from sysobjects再次运行,则会报错提示:数据库中已存在名为'%1!' 的对象。www.it165.netMsg 2714, Level16, State 6, Line 2There is alreadyan ob 阅读全文

posted @ 2013-10-30 15:31 米粒3 阅读(347) 评论(0) 推荐(0) 编辑

摘要: 存储过程表的循环以下以SQL Server 2000中的NorthWind数据库中的Customers表为例,用 临时表 + While循环 的方法, 对Customers表中的CompanyName列进行遍历create table #temp(id int identity(1,1),customer nvarchar(50))declare @customer nvarchar(50)declare @nintdeclare @rowsintselect @n=1insert #temp(customer) select distinct companyname from custome 阅读全文

posted @ 2013-10-30 15:11 米粒3 阅读(689) 评论(0) 推荐(0) 编辑

摘要: --判断数据库是否存在IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME = '库名') PRINT 'exists 'else PRINT 'not exists'-- 判断要创建的表名是否存在IF EXISTS (Select * From sysObjects Where Name ='表名' And Type In ('S','U'))PRINT 'exists'ELSEPRINT 'not exists& 阅读全文

posted @ 2013-10-30 14:43 米粒3 阅读(209) 评论(0) 推荐(0) 编辑

摘要: 存储过程中使用事务与try catch一、存储过程中使用事务的简单语法在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式:代码:Create Procedure MyProcedure( @Param1 nvarchar(10),@param2 nvarchar(10))ASBeginSet NOCOUNT ON;Set XACT_ABORT ON;Begin TranDelete from table1wherename=’abc’;Insert into table2 values(value1 阅读全文

posted @ 2013-10-30 11:13 米粒3 阅读(390) 评论(0) 推荐(0) 编辑

摘要: 如果存储过程执行中遇到了错误(严重错误),就会终止sp的执行,但是如果想让sp跳过错误,继续执行后面的语句,怎么办?1,在sql server 2005中可以用try...catch解决。[c-sharp]view plaincopyCREATETABLEtestTable(idintIDENTITY(1,1),namenvarchar(20)NOTNULL,passnvarchar(20))CREATEPROCEDUREtestTableInsert@namenvarchar(20),@passnvarchar(20)ASBEGINTRYINSERTINTOtestTableVALUES(@ 阅读全文

posted @ 2013-10-30 10:44 米粒3 阅读(557) 评论(0) 推荐(0) 编辑

摘要: 实例1:只返回单一记录集的存储过程。银行存款表(bankMoney)的内容如下IduserIDSexMoney001Zhangsan男30002Wangwu男50003Zhangsan男40要求1:查询表bankMoney的内容的存储过程create procedure sp_query_bankMoneyasselect * from bankMoneygoexec sp_query_bankMoney注*在使用过程中只需要把中的SQL语句替换为存储过程名,就可以了很方便吧!实例2(向存储过程中传递参数):加入一笔记录到表bankMoney,并查询此表中userID= Zhangsan的所有 阅读全文

posted @ 2013-10-30 10:33 米粒3 阅读(145) 评论(0) 推荐(0) 编辑