我有一个临时表,想要将数据插入Main
表,所以我想检查从登台到主表的数据,如果存在则更新记录,否则插入新记录。这里的问题是分段和主表没有任何基于我可以比较值的键列。
是否可以不使用关键列,即两个表上的主键?如果有,请,建议我如何。
提前致谢。
答案 0 :(得分:4)
如果一行中没有唯一键或一组数据来定义唯一性,那么没有。
数据集可以是每列中数据的组合,创建将提供唯一性的部分之和;但是,如果不接触您的数据,您需要做出决定。
答案 1 :(得分:0)
您编写WHERE子句以包含使您的记录唯一的所有字段(即,决定记录是新的还是应该更新的字段。)
请看一下这篇文章(http://blogs.msdn.com/b/miah/archive/2008/02/17/sql-if-exists-update-else-insert.aspx),了解如何构建它。
如果你使用的是SQL Server 2008r2,你也可以使用MERGE语句 - 我没有在没有键的表上尝试过,所以我不知道它是否适合你。