在一个假设的例子中关系表,说我有两个表:FARM和水果更新使用合并
农场组织,如:
FARM_ID Size
1 50
2 100
3 200
...
和水果的组织,如:
Reference_ID FRUIT
1 Banana
1 Grape
1 Orange
2 Banana
2 Strawberry
FRUIT表从采取从Excel参数@fruit其是分隔小号创建使用'/'。
例如,@fruit = '香蕉/葡萄/橙'
而使用如下语句:
INSERT INTO FRUIT(
Fruit,
Reference_ID,
)
SELECT Fruit, Scope_IDENTITY() from split_string(@fruit, '/')
凡split_string是一个函数。
我的目标是检查更新。我想收入一个Farm_ID和@fruit,并检查是否有任何变化已经对水果。
1)如果值没有改变,不做任何事情
2)如果添加了新的水果,它与farm_ID
3)添加到水果表如果有果在FRUIT表中,不符合尊重FARM_ID的新分隔列表,请将其从FRUIT表中删除。
我认为合并声明可能会奏效,但可以接受建议。如果有什么不清楚,请告诉我。谢谢
编辑
林相当新的SQL,但使用的合并已经尝试...
Declare @foo tinyint
Merge Fruit as Target
Using (Select Fruit , @workingID From split_string(@fruit, '/') As source (fruit, ID)
[email protected] is just a way to get the ID from other parts of the sproc.
ON (TARGET.fruit = source.fruit)
WHEN MATCHED THEN
SET @foo = 1
WHEN NOT MATCHED
THEN DELETE
WHEN NOT MATCHED THEN
INSERT INTO FRUIT(
Reference_ID,
Fruit
)
VALUES(
然后我停留在如何让独特的,新的价值观
@ajeh,看到编辑。希望可以帮助 – user3697498