【发布时间】:2014-02-08 03:07:55
【问题描述】:
我想知道如何使用一条语句在 SQL Server 中使用 UPSERT 或换句话说 UPDATE if records exists Else enter new record 操作?
此示例显示了在 Oracle Here 中实现此目的的方法
但它使用Dual 表,而SQL Server 中不存在。
那么,任何 SQL Server 替代品(无存储过程)好吗?
【问题讨论】:
-
此外,MS SQL Server 中没有
dual。您可以简单地使用SELECT而不使用FROM子句。在 Oracle 中,必须使用FROM子句,而在 SQL Server 中则不然。 -
同意重复,但请阅读所有答案的所有 cmets - 有些人比其他人有更好的建议,最高投票的答案并不总是最好的,而是那些是最长的。
-
您要求声明;为什么要说“没有存储过程”?这么说的目的是什么?您知道存储过程本质上只是一个或多个 T-SQL 语句的包装器,对吧?如果有人确实为您提供了存储过程,您可以在 CREATE PROCEDURE 之后获取代码,瞧,您不再拥有过程......
标签: sql sql-server sql-server-2008