2013-02-18 114 views
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值。

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

+1

您标记为'C#'这个问题,因为..? – 2013-02-18 11:45:05

+0

如果你想更新,那么什么阻止你更新? – 2013-02-18 11:45:32

+0

我不知道该怎么做.. – Learner 2013-02-18 11:47:23

回答

1

做更新,如果没有发现任何要更新的记录,做插件:

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

if (@@rowcount = 0) begin 

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

end 
0

搜索IF ... EXISTS命令。最后,你也可以使用MERGE语句,如果一行已经存在,你可以使用SELECT来确定,你可以做一个UPDATE。

相关问题