当前位置:首页 > SQL数据库 > 正文内容

sqlserver判断存储过程是否存在,存在则更新,否则插入

Conbio2年前 (2022-10-31)SQL数据库1980

create   PROCEDURE proName

@name  NVARCHAR(50),

@O_RETURN INT OUTPUT,

    @Id INT OUTPUT

AS

BEGIN

   SET NOCOUNT ON;

 

   BEGIN TRY 

BEGIN TRAN T --创建事务

    DECLARE @AJIEGUO INT 

--判断是否存在

IF EXISTS(SELECT* from table WHERE name = @name)

 

    BEGIN

 

UPDATE table SET name = @name, WHERE  name = @name

 

IF(@@ROWCOUNT>0)

begin

SET @O_RETURN=1

set @Id=(SELECT Id from table WHERE name = @name) --获取更新的的id

end

else

 

begin

SET @O_RETURN=0

end

 

END

 

ELSE

BEGIN

INSERT INTO table

(

name

)

VALUES

(

@name

)

IF(@@ROWCOUNT>0)

begin

SET @O_RETURN=1

set @Id=@@identity --取到刚插入的id

end

else

begin

SET @O_RETURN=0

end

    END

END TRY

 

BEGIN CATCH   --捕捉错误

  SET @AJIEGUO=@@ERROR;    

END CATCH

 

 

 IF(@AJIEGUO=0) 

BEGIN   

 

        COMMIT TRAN T; --提交事务

SET @O_RETURN =1;

END

 

    ELSE

BEGIN   

        ROLLBACK  TRAN T;--回滚事务

SET @O_RETURN =0;

END

   END


扫描二维码推送至手机访问。

版权声明:本文由ZKCOPS发布,如需转载请注明出处。

本文链接:http://0.iiil.top/?id=25

分享给朋友:

“sqlserver判断存储过程是否存在,存在则更新,否则插入” 的相关文章

SQlServer的日期相减(间隔)datediff函数

SQlServer的日期相减(间隔)datediff函数

select datediff(year, 开始日期,结束日期); --两日期间隔年select datediff(quarter, 开始日期,结束日期); --两日期间隔季select datediff(month, 开始日期,结束日期); --两日期间隔月select datediff(day,...

SQLSERVER函数判断当天是星期几

SQLSERVER函数判断当天是星期几

可以使用两个函数来判断:select getdate(),datename(weekday,getdate()),datepart(weekday,getdate())datename 返回星期名称;datepart 返回数值;例子:select  case   datepart...

sql server charindex函数

sql server charindex函数

charindex函数-匹配字符串开始位置  --CHARINDEX(str1,str[,start])函数返回子字符串str1在字符串str中的开始位置  --start为搜索的开始位置,如果指定start参数,则从指定位置开始搜索;如果不指定start参数或者指定为0或者负值...

sqlserver 各种判断是否存在(表、视图、函数、存储过程等)

sqlserver 各种判断是否存在(表、视图、函数、存储过程等)

1、判断表是否存在select * from sysobjects where id = object_id(表名) and OBJECTPROPERTY(id, N'IsUserTable&...

sqlserver存储过程中SELECT 与 SET 对变量赋值的区别

sqlserver存储过程中SELECT 与 SET 对变量赋值的区别

SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值。当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。下表列出 SET 与 SELECT 的区别。请特别注意红色部分。setselect同时对多个变量同时赋值不支持支持表达式返回多个值时出错将返回的最后一个值赋给...

常用流程图图形含义,助力绘制流程图

常用流程图图形含义,助力绘制流程图

日常生活或工作中,我们经常会绘制流程图,用于梳理事件的具体流程或表示程序的算法等。   然而在制作流程图时,会特别注意对流程图图形符号的使用。通过特定图形用于表示具体的含义,使流程图变得直观易懂,下面给大家分享一些常用流程图图形含义,帮助你简单绘制流程图。 一、流程图图形符号  流程图的图形符...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。