C# 是否可以进行批量更新?
是否可以批量更新?我做了一个构建插入,现在我想更新每个用户ID以增加计数 这是我的构建插入的一个示例C# 是否可以进行批量更新?,c#,sql,sqlite,C#,Sql,Sqlite,是否可以批量更新?我做了一个构建插入,现在我想更新每个用户ID以增加计数 这是我的构建插入的一个示例 void updateMediaForSubscribers(long userId, long mediaId, Media_Base.Catagory cat, DateTime currentDate) { command.CommandText = "INSERT INTO user_media_subscription (recipientId, mediaId
void updateMediaForSubscribers(long userId, long mediaId, Media_Base.Catagory cat, DateTime currentDate)
{
command.CommandText =
"INSERT INTO user_media_subscription (recipientId, mediaId, catagory) " +
"SELECT watcher, @mediaId, @category " +
"FROM user_watch WHERE watched=@watched;";
command.Parameters.Add("@mediaId", DbType.Int64).Value = mediaId;
command.Parameters.Add("@category", DbType.Int64).Value = cat;
command.Parameters.Add("@watched", DbType.Int64).Value = userId;
command.ExecuteNonQuery();
//now I want to increase but this syntax is wrong
//currently near "LEFT": syntax error
//this is made up and shouldn't work.
command.CommandText =
"UPDATE user_data SET mediaMsgCount=mediaMsgCount+1 " +
"LEFT JOIN user_watch AS w ON w.watcher=user_data.userId " +
"WHERE w.watched=@watched;";
command.Parameters.Add("@watched", DbType.Int64).Value = userId;
command.ExecuteNonQuery();
}
您需要使用“更新…与”
看一看试试下面的SQL:
UPDATE user_data
SET mediaMsgCount = mediaMsgCount+1
FROM user_data
LEFT JOIN user_watch AS w ON w.watcher=user_data.userId
WHERE w.watched=@watched
嗯,我已经对它进行了调整,但我没有SQL server本地测试它-现在下载它,这样我就可以确保它在一点时间内工作:-)我认为这段代码的问题是,你不能在UPDATE子句中使用别名。
UPDATE user_data
SET mediaMsgCount = mediaMsgCount+1
FROM user_data
LEFT JOIN user_watch AS w ON w.watcher=user_data.userId
WHERE w.watched=@watched