2013-02-18 77 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。

相關問題