SqlServer建立存储过程,方便.NET插入自增字段

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 首先,需要在数据库中创建一个表,以在test数据库创建tableNo表为例:create table tablesNo( tableName varchar(30) not null, --表名 num int not null --行数)然后在数据库中 --> 可...

首先,需要在数据库中创建一个表,以在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 = 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");  

 

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
24天前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
|
19天前
|
存储 SQL 缓存
SQL Server存储过程的优缺点
【10月更文挑战第22天】存储过程具有代码复用性高、性能优化、增强数据安全性、提高可维护性和减少网络流量等优点,但也存在调试困难、移植性差、增加数据库服务器负载和版本控制复杂等缺点。
|
22天前
|
存储 SQL 数据库
Sql Server 存储过程怎么找 存储过程内容
Sql Server 存储过程怎么找 存储过程内容
24 1
|
25天前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第17天】SQL Server 存储过程是预编译的 SQL 语句集,存于数据库中,可重复调用。它能提高性能、增强安全性和可维护性,但也有可移植性差、开发调试复杂及可能影响数据库性能等缺点。使用时需权衡利弊。
|
30天前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
49 3
|
1月前
sqlserver实现取相同名称放在同一字段
sqlserver实现取相同名称放在同一字段
27 2
|
3月前
|
存储 SQL 数据库
如何使用 SQL Server 创建存储过程?
【8月更文挑战第31天】
129 0
|
3月前
|
SQL Java Scala
flink-cdc SQL Server op 字段如何获取?
Flink CDC 是 Apache Flink 的组件,用于捕获数据库变更事件。对 SQL Server,通过 Debezium 连接器支持变更数据捕获。`op` 字段标识操作类型(INSERT、UPDATE、DELETE)。配置包括添加依赖及设定 Source 连接器,可通过 Flink SQL 或 Java/Scala 完成。示例查询利用 `op` 字段筛选处理变更事件。
120 1
|
3月前
|
存储 开发框架 .NET
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
|
3月前
|
程序员 数据库
分享 2 个 .NET EF 6 只更新某些字段的方法
分享 2 个 .NET EF 6 只更新某些字段的方法