SqlServer建立存储过程,方便.NET插入自增字段
发布时间:2020-12-12 13:49:41 所属栏目:MsSql教程 来源:网络整理
导读:首先,需要在数据库中创建一个表,以在test数据库创建tableNo表为例: create table tablesNo( tableName varchar ( 30 ) not null , -- 表名 num int not null -- 行数 ) 然后在数据库中 -- 可编程性 -- 存储过程 -- 新建存储过程 ,也可以在sql中执行代码如下
首先,需要在数据库中创建一个表,以在test数据库创建tableNo表为例: create table tablesNo ( tableName varchar(30) not null,--表名 num int not null --行数 ) 然后在数据库中 --> 可编程性 --> 存储过程 --> 新建存储过程 ,也可以在sql中执行代码如下: USE [test] --数据库名 GO /****** Object: StoredProcedure [dbo].[usp_Id] Script Date: 2017/2/1 星期三 下午 6:48:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create proc [dbo].[usp_Id] --新建一个存储过程名为usp_Id @tableName nvarchar(50),@id int output as declare @erro int set @erro=0 begin transaction select @id=num+1 from tablesNo where tableName=@tableName set @erro=@erro+@@ERROR update tablesNo set num=num+1 where tableName=@tableName set @erro=@erro+@@ERROR if(@erro=0) begin commit transaction end else 其次在.NET中的DAL层创建一个CommonService类,代码如下: using System.Data; public class CommonService { public static int GetId(string tableName) //存储过程ID { int id = 0; string sql = "usp_Id"; SqlParameter par1 = new SqlParameter("@tableName",tableName); par1.Direction = ParameterDirection.Input; SqlParameter par2 = new SqlParameter("@id",SqlDbType.Int); par2.Direction = ParameterDirection.Output; SqlConnection con = null; SqlCommand cmd = null; try { con = SqlHelper.Open(); cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = sql; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(par1); cmd.Parameters.Add(par2); cmd.ExecuteNonQuery(); id = Convert.ToInt32(cmd.Parameters["@id"].Value); } catch (SqlException ex) { } finally { con.Close(); } return id; } } 应用方法如下: Id = CommonService.GetId("ClickAccessAmount"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |