如果存在并在存储过程中更新/删除

时间:2018-08-05 15:18:28

标签: sql-server

我当前正在编写一个存储过程来更新整个表或在属性级别。

我看看它是否应该更新整个表。如果是,则整个更新,如果不是,则在属性级别查看是否应该是新行,更新行或删除行。

在我的帮助下,我有三个表:一个表示是否要更新整个表,一个新表/更新表和一个删除表。它们由数据组成,这些数据告诉什么表已更改以及何时发生更改以及GUID。

关于如何编写此内容的任何想法?首选的也是动态代码,但这不是必须的。例如:

IF EXISTS (SELECT * from DB1.Schema1.Table1 where UpdateAll = 1) --update all rows, all attributes
   BEGIN
    'truncate/drop table? update whole table from another table from DB2?'
   END

IF EXISTS (SELECT * from DB1.Schema1.Table1 where UpdateAll = 0) --Only on attribute level
  BEGIN
   'Update table in DB1 based on Delete, or new/update table. And this step 
    is on attribute level (not update all attributes as step above)'
  END

1 个答案:

答案 0 :(得分:0)

首先尝试在SQL Server:here

中探索MERGE语句。

如果它不能完全满足您的要求,请使用sp_executesql执行动态查询:here