首先,需要在数据库中创建一个表,以在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
    begin
    rollback transaction
    end

其次在.NET中的DAL层创建一个CommonService类,代码如下:

  using System.Data;  
  using System.Data.SqlClient;

public class CommonService
{
public static int GetId(string tableName) //存储过程ID
{
int id = ;
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");  

SqlServer建立存储过程,方便.NET插入自增字段的更多相关文章

  1. mysql 压力测试之批量插入自增字段不连续问题

    Gaps in auto-increment values for “bulk inserts” With innodb_autoinc_lock_mode set to 0 (“traditiona ...

  2. oracle 实现插入自增列(类似SqlServer Identity)

    oracle不像sql server 有关键字identity直接可插入数据时自增 ,Oracle是不能用Identity,可以使用Sequence Create Table Tempinfo( id ...

  3. .NET使用存储过程实现对数据库的增删改查

    一.整体思路 先建立存储过程,再通过.net 调用存储过程,来实现对表的增删改查. 二.新建数据库及存储过程 打开SqlServer2008,新建数据库orm1,及表Student. 数据库和表建立好 ...

  4. Sqlserver中存储过程,触发器,自定义函数

    Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的 ...

  5. SQLServer 的存储过程与java交互

    一.   存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程 ...

  6. 存储过程获取最后插入到数据表里面的ID

    存储过程获取最后插入到数据表里面的ID SET NOCOUNT on;---不返回影响行数提高性能GOcreate proc [sp_bbs_thread_Insert] @id int output ...

  7. SqlServer 不是主键 如何自增

    SqlServer 不是主键 如何自增:INSERT INTO dbo.表 VALUES('14-19周',0,(select COUNT(1) from dbo.表)+1) (select COUN ...

  8. Sqlserver中存储过程,触发器,自定义函数(二)

    Sqlserver中存储过程,触发器,自定义函数: 自定义函数:1.函数类型:2.函数的参数和返回值: 1.函数类型:标量值函数,返回的是一个标量值表值函数:内联表值函数:多语句表值函数. 标量值函数 ...

  9. Sqlserver中存储过程,触发器,自定义函数(一)

    Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...

随机推荐

  1. PHPCMS 详情页静态化

    <?php defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_app_class('admin',' ...

  2. 部署Sharding分片

    这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在sharding 的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB 集群. MongoDB 的数据分块称为 ch ...

  3. Raphael的鼠标over move out事件

    Raphael的鼠标over move out事件 <%@ page language="java" contentType="text/html; charset ...

  4. jQuery trigger one用法

    jQuery trigger one用法: <%@ page language="java" import="java.util.*" pageEncod ...

  5. ZooKeepr日志清理

    http://blog.csdn.net/xiaolang85/article/details/21184293

  6. ubuntu 14.04 中找不到 libgtk-x11-2.0.so

    如果ubuntu安装的64位的,在其中安装32位软件时就会碰到缺失libgtk-x11-2.0.so的情况 比如用wine安装qq时 启动qq时就会报这样的错误 error : cannot open ...

  7. ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译

    内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2 [Get Started] 类似于绪论一样的东西,抽取了最需要关注的几个例子.如:加载Map和View, ...

  8. [html5] 学习笔记-html5增强的页面元素

    在 HTML5 中,不仅增加了很多表单中的元素,同时也增加和改良了可以应用在整个页面中的元素.重点包含 figure.figcaption.details.summary.mark.progress. ...

  9. 蓝桥网试题 java 基础练习 分解质因数

    -------------------------------------------------------------------------- 递归更多的用在多分支情况中 本题用循环就可以了 用 ...

  10. Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门

    一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...