Guest User

Untitled

a guest
Jun 24th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. DELETE from MyRecords
  2. WHERE tag = 1
  3. OR tag = 2
  4. OR longTag = 'LongTag1'
  5. OR tag = 555
  6.  
  7. delete real_table from real_table a
  8. join u_real_table b on (a.tag = b.tag);
  9. insert into real_table select *
  10. from u_real_table where tag is not null;
  11.  
  12. delete real_table from real_table a
  13. join u_real_table b on (a.longTag = b.longTag);
  14. insert into real_table select *
  15. from u_real_table where longTag is not null;
  16.  
  17. delete from u_real_table;
  18.  
  19. CREATE TRIGGER dbo.TR_MyTable_Merge
  20. ON dbo.MyTable
  21. INSTEAD OF INSERT
  22. AS
  23. BEGIN
  24. SET NOCOUNT ON;
  25.  
  26. BEGIN TRANSACTION
  27.  
  28. DELETE MyTable
  29. FROM MyTable t INNER JOIN inserted i ON t.tag = i.tag
  30.  
  31. DELETE MyTable
  32. FROM MyTable t INNER JOIN inserted i ON t.longTag = i.longTag
  33.  
  34. INSERT MyTable
  35. SELECT * FROM inserted
  36.  
  37. COMMIT TRANSACTION
  38.  
  39. SET NOCOUNT OFF;
  40. END
  41.  
  42. DELETE FROM MyRecords
  43. WHERE tag IN (1, 2, 555) -- build a list
  44. OR longTag IN ('LongTag1')
  45.  
  46. DELETE from MyRecords
  47. WHERE tag = 1
  48.  
  49. DELETE from MyRecords
  50. WHERE tag = 2
  51.  
  52. DELETE from MyRecords
  53. WHERE tag = 555
  54.  
  55. DELETE from MyRecords
  56. WHERE longTag = 'LongTag1'
  57.  
  58. DECLARE @tag TABLE (id INT);
  59. DECLARE @longTag TABLE (id VARCHAR(50));
  60.  
  61. INSERT
  62. INTO @tag
  63. VALUES (`tag1`)
  64.  
  65. INSERT
  66. INTO @tag
  67. VALUES (`tag2`)
  68.  
  69. /* ... */
  70.  
  71. INSERT INTO @longTag
  72. VALUES ('LongTag1')
  73.  
  74. /* ... */
  75.  
  76.  
  77. DELETE
  78. FROM MyRecords r
  79. WHERE r.tag IN (SELECT * FROM @tag)
  80. OR r.longTag IN (SELECT * FROM @longTag)
  81.  
  82. DELETE
  83. FROM MyRecords r
  84. WHERE r.tag IN (SELECT * FROM @tag)
  85.  
  86. DELETE
  87. FROM MyRecords r
  88. WHERE r.longTag IN (SELECT * FROM @longTag)
Add Comment
Please, Sign In to add comment