我们计划将应用程序从 Sybase SQL Anywhere 转换为 SQL Server。
在 SA 我们使用了很多“现有更新”,通过主键检查行是否存在。 如果为真,则更新(如果我正在执行更新子句,则以相同的方式)。 如果没有,它会插入。
SQL Server 是否支持这样的东西?
最佳答案
据我所知,一个命令不支持这一点。我发现最好的方法是关注 Jeremiah Clark's tip :尝试更新,然后检查受影响的记录数。如果它是零,那么我插入:
UPDATE Table1 SET (...) WHERE Column1='SomeValue'
IF @@ROWCOUNT=0
INSERT INTO Table1 VALUES (...)
关于sql-server - 对现有更新的 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940786/