SQL选择:如果存在则更新,否则插入 - 使用日期部分比较?

Mat*_*ats 6 sql sql-server sql-update

我需要使用以下字段更新数据库中的记录

[ID] int (AutoIncr. PK)
[ScorerID] int
[Score] int
[DateCreated] smalldatetime
Run Code Online (Sandbox Code Playgroud)

如果今天的日期存在记录(只应检查日期部分,而不是时间)和给定的记分员,我想更新这个人和今天的分数值.如果得分手今天没有记录,我想创建一个新记录.

我正在试着弄清楚如何将它放入单个(这可能吗?)sql语句中.顺便说一句,我正在使用MSSQl数据库和ExecuteNonQuery()方法来发出查询.

Tim*_*uri 16

IF EXISTS (SELECT NULL FROM MyTable WHERE ScorerID = @Blah AND CONVERT(VARCHAR, DateCreated, 101) = CONVERT(VARCHAR, GETDATE(), 101))
    UPDATE MyTable SET blah blah blah
ELSE
    INSERT INTO MyTable blah blah blah
Run Code Online (Sandbox Code Playgroud)