Tôi đang sử dụng MERGE trong truy vấn của mình và tôi đang tạo INSERT trên mệnh đề KHÔNG CHƯA RA, nhưng sau đó tôi muốn lấy danh tính hàng được chèn và tạo một INSERT khác cho một số bàn khác. Truy vấn ngay bây giờ là:Máy chủ sql hợp nhất với nhiều lần chèn khi không khớp với
ALTER PROCEDURE [dbo].[BulkMergeOffers]
@data ImportDataType READONLY
AS
SET NOCOUNT ON;
DECLARE @cid int = 0
MERGE dbo.oferta AS target
USING @data AS source
ON (target.nr_oferty = source.nr_oferty)
WHEN NOT MATCHED THEN
INSERT (nr_oferty,rynek,typ_transakcji, typ_nieruchomosci,cena,powierzchnia, rok_budowy, wojewodztwo, miasto, dzielnica, ulica, opis, wspolrzedne, film, zrodlo, KontaktStore, data, forma_wlasnosci, stan_techniczny, liczba_pokoi, liczba_peter, pietro, material, kuchnia, pow_dzialki, typ_dzialki, woda,gaz, prad,sila, przeznaczenie,lokal_dane)
VALUES (source.nr_oferty,source.rynek,source.typ_transakcji, source.typ_nieruchomosci,source.cena,source.powierzchnia, source.rok_budowy, source.wojewodztwo, miasto, source.dzielnica, source.ulica, source.opis, source.wspolrzedne, source.film, source.zrodlo, source.KontaktStore, source.data, source.forma_wlasnosci, source.stan_techniczny, source.liczba_pokoi, source.liczba_peter, source.pietro, source.material, source.kuchnia, source.pow_dzialki, source.typ_dzialki, source.woda,source.gaz, source.prad,source.sila, source.przeznaczenie,source.lokal_dane);
Vì vậy, bạn cần phải lấy một số giá trị vào bảng mục tiêu dựa trên dữ liệu nguồn, tôi cần lấy thông tin chèn và chèn vào bảng khác mà còn dựa trên một số nguồn dữ liệu, vì vậy một cái gì đó như thế, ngay sau khi chèn đầu tiên:
SET @cid = SCOPE_IDENTITY();
if source.photo is not null
begin
insert into dbo.photos(offerID, file) values (@cid, source.photo);
end
Nhưng tôi không thể lắp ráp nó, một không có quyền truy cập vào các nguồn không còn nữa, cũng tuyên bố nếu chương trình báo lỗi:
"số nhận dạng nhiều phần source.photo không thể bị ràng buộc "
nhưng nó ở đó. Chỉ cần cho rõ ràng ImportDataType là một tham số có giá trị bảng.
Hãy GIÚP
Tôi đang sử dụng KHI cũng phù hợp cho việc cập nhật, chỉ cần lột nó để làm rõ mẫu, xấu của tôi. Nhưng mẫu của bạn là thú vị tôi sẽ cố gắng phân tích nó và điều chỉnh theo nhu cầu của tôi, đó là một tham khảo tốt. – Programista
Tôi là một lời khuyên tốt thực sự, thx, tôi đã quản lý để làm cho nó hoạt động. – Programista
Lưu ý rằng 'MERGE' vẫn hữu ích nếu bạn cần xuất dữ liệu từ bản ghi nguồn. Câu lệnh 'MERGE'' OUTPUT' có thể trả về cả dữ liệu được chèn lẫn dữ liệu nguồn, trong khi câu lệnh 'INSERT' chỉ có thể trả về các giá trị từ hàng được chèn vào. –