• sql 存储过程,最简单的添加和修改


    数据库表结构

     《1》新增数据,并且按照"name" 字段查询,如果重复返回“error”=-100 ,如果成功返回ID,如果失败ID=0

    USE [数据库]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER procedure [dbo].[存储过程名称]
    (
    @name varchar(50),
    @state int,
    @capbility int,
    @ip varchar(50),
    @port int
    )
    AS
    SET NOCOUNT ON;
    BEGIN
    declare @count int;
    declare @id int;
    --判断此服务器是否已经注册
    select @count=COUNT(*) from serverlist where name =@name;
    if(@count>0)--此服务器已经注册过
    BEGIN
    select "ERROR" = -100; --此服务器已经注册过
    END else
    BEGIN
    insert into serverlist(name,[state],capbility,ip,port) values (@name,@state,@capbility,@ip,@port);select @@identity;
    select @id;
    END
    END

    注意,代码执行此存储过程中,只查询表中第一个字段即可,string id=表.rows[0][0].tostring().trim(); 

    《2》 修改数据,依然查询词数据是否已经存在

    USE [数据库]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER procedure [dbo].[存储过程名称]
    (
    @name varchar(50),
    @state int,
    @capbility int,
    @ip varchar(50),
    @port int,
    @id int
    )
    AS
    SET NOCOUNT ON;
    BEGIN
    declare @count int;
    declare @return int;
    select @count=COUNT(*) from serverlist where name =@name and ID<>@id;
    if(@count>0)
    BEGIN
    select "error"=-100;
    end
    begin
    select @count=COUNT(*) from serverlist where id =@id
    if(@count>0)
    begin
    update serverlist set name=@name,[state]=@state,capbility=@capbility,ip=@ip,port=@port where ID=@id;
    set @return = 1;
    end else
    begin
    set @return = 0;
    end
    end
    select @return;
    END


  • 相关阅读:
    UPC 5130 Concerts
    poj 1079 Calendar Game
    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛
    CF932E
    浅谈Tarjan算法
    拉格朗日差值
    扩展欧几里得算法(exgcd)
    欧拉定理
    莫比乌斯反演
    除法分块
  • 原文地址:https://www.cnblogs.com/wang-123/p/3741610.html
Copyright © 2020-2023  润新知