Używam C# i przy użyciu SqlBulkCopy. Mam jednak problem. Muszę zrobić masową wkładkę do jednego stołu, a następnie kolejną masową wkładkę do innego stołu.Możliwość odzyskania identyfikatorów PrimayKey po SQL BulkCopy?
Te 2 mają związek PK/FK.
Table A
Field1 -PK auto incrementing (easy to do SqlBulkCopy as straight forward)
Table B
Field1 -PK/FK - This field makes the relationship and is also the PK of this table. It is not auto incrementing and needs to have the same id as to the row in Table A.
Więc te tabele mają jeden do jednego związku, ale jestem pewien, jak wrócić Wszystkie te PK Id że masa wkładka wykonana ponieważ muszę je Tabela B.
Edit
Czy mogę zrobić coś takiego?
SELECT *
FROM Product
WHERE NOT EXISTS (SELECT * FROM ProductReview WHERE Product.ProductId = ProductReview.ProductId AND Product.Qty = NULL AND Product.ProductName != 'Ipad')
Powinny znaleźć wszystkie wiersze, które właśnie zostały wstawione przy użyciu kopii zbiorczej sql. Nie jestem pewien, jak wziąć z tego wyniki, a następnie zrób z nich masową wkładkę z SP.
Jedyny problem jaki widzę z tym, to że jeśli użytkownik wykonuje te zapisy pojedynczo, a instrukcja ta działa w tym samym czasie, może spróbować wstawić wiersz dwa razy do "Tabeli przeglądu produktów".
Powiedzmy, że mam jednego użytkownika korzystającego z trybu ręcznego, a inny użytkownik robi masę mniej więcej w tym samym czasie.
sposób ręczny. 1. Użytkownik przesyła dane 2. Linq do sql Obiekt produktu jest tworzony i wypełniany danymi oraz przesyłany. 3. ten obiekt zawiera teraz ProductId 4. Kolejny obiekt linq to sql jest tworzony dla tabeli recenzji produktu i jest wstawiany (identyfikator produktu z kroku 3 jest wysyłany razem).
Droga masowa. 1. Użytkownik pobiera dane od użytkownika udostępniającego dane. 2. Wszystkie wiersze produktu od użytkownika udostępniania są chwytane. 3. Wstawianie kopii zbiorczej SQL w wierszach produktów. 4. Mój SP wybiera wszystkie wiersze, które istnieją tylko w tabeli produktów i spełnia inne warunki. 5. Wstawianie masy odbywa się z tymi wierszami.
Co się dzieje, gdy krok 3 (droga ręczna) ma miejsce w tym samym czasie co krok 4 (droga masowa). Myślę, że spróbuje wstawić dwa razy ten sam wiersz, co spowoduje wykonanie ograniczenia podstawowego.
Co wiąże tabele na forherze? –