0

我创建了这个存储过程,

现在我想做的是,如果表中存在类似类型的记录,则始终替换,

这是sp,

USE [DBName]
GO

CREATE procedure [dbo].[InsertDD]
(
    @ColumnA varchar(1000), 
    @ColumnB varchar(1000),
    @CurrentDateAndTime datetime

)
AS

INSERT Into TableName
(
    ColumnA,    
    ColumnB,
    CurrentDateAndTime
)
Values
(
    @ColumnA,   
    @ColumnB,
    @CurrentDateAndTime
)

现在,如果表已经有 B 列值(不管字母的不同,例如大写或小写),那么只需更新CurrentDateAndTime值。

如果不是,那么只需添加三个值。

4

2 回答 2

1

进行更新,如果没有找到要更新的记录,请插入:

update TableName 
set CurrentDateAndTime = @CurrentDateAndTime
where ColumnB = @ColumnB

if (@@rowcount = 0) begin

  insert into TableName (
    ColumnA,    
    ColumnB,
    CurrentDateAndTime
  ) values (
    @ColumnA,   
    @ColumnB,
    @CurrentDateAndTime
  )

end
于 2013-02-18T11:48:23.980 回答
0

搜索 IF ... EXISTS 命令。最后,您还可以使用 MERGE 语句,该语句确定是否使用 SELECT 行已经存在并且您可以执行 UPDATE。

于 2013-02-18T11:47:46.380 回答