Βήμα 1: Δημιουργία view που απλά επιλέγει δεδομένα από τον πίνακα (έστω tbl1) στον οποίο θα γίνει το BULK INSERT.
CREATE VIEW tbl1_view
AS
SELECT ID, Customer, CAST(Value1 AS VARCHAR(50)) AS Value1, CAST(Value2 AS VARCHAR(50)) AS Value2
FROM tbl1
Σημείωση:Η μετατροπή των Value1, Value2 σε VARCHAR είναι απαραίτητη για να γίνει εισαγωγή τιμών πχ. 123-
Βήμα 2: Δημιουργία trigger στην view
CREATE TRIGGER bulk_insert_tbl1_view
ON tbl1_view
INSTEAD OF INSERT
AS
INSERT INTO tbl1(ID, Customer, Value1, Value2)
SELECT ID, Customer, SIGN(REVERSE(i.Value1)) * REPLACE (i.Value1,'-','') , SIGN(REVERSE(i.Value2)) * REPLACE (i.Value2,'-','')
FROM inserted i
Σημείωση: Είναι σημαντικό, ότι ο trigger ΔΕΝ κάνει εισαγωγή στην view αλλά ΣΤΟΝ ΠΙΝΑΚΑ ΑΠΕΥΘΕΙΑΣ!!!
Βήμα 3: Κάνεις BULK INSERT στην view και οχι στον πίνακα επιλέγοντας FIRE_TRIGGERS .
Αν προτίθεσαι να δοκιμάσεις την παραπάνω λύση, θα μπορούσες να μοιραστείς τις εντυπώσεις σου??
--ΗΤΗ--