Я хочу обновить одну таблицу значениями из другой таблицы. первая таблица Tbl_test_details
имеет customer_id
, pr_no
и tests
и еще несколько столбцов, а вторая таблица tbl_tests
имеет tests
. для каждого pr_no
в tbl_test_details
я хочу добавить все значения в tests
из tbl_tests
. Я пытался сделать это с помощью курсоров, но это не работает. Он вставляет записи только для первых pr_no
и завершает работу. Нужна помощь
Обновление: есть еще одна проблема: pr_no
повторяется tbl_test_deatils
, и некоторые значения test
уже существуют, поэтому некоторая вставка может завершиться неудачно из-за первичного ключа (pr_no + tests
)
DECLARE @test nvarchar(180)
DECLARE @prno nvarchar(50)
DECLARE @dte date
DECLARE @tst nvarchar(180)
DECLARE cr_testd CURSOR FOR
SELECT cust_id,pr_no,date
FROM tbl_Test_Details;
DECLARE cr_tests CURSOR FOR
SELECT test_name
FROM tbl_tests
OPEN cr_testd
FETCH NEXT FROM cr_testd into @cid,@prno,@dte
OPEN cr_tests
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM cr_tests into @tst
WHILE @@FETCH_STATUS=0
BEGIN
Insert into tbl_Test_Details values(@cid,@tst,@prno,@dte)
IF (@@ROWCOUNT <= 0)
BEGIN
BREAK
END
FETCH NEXT FROM cr_tests into @tst
END
FETCH NEXT FROM cr_tests into @tst
END
CLOSE cr_test
DEALLOCATE cr_test```
Current State of Tables
Tbl_Test_details Tbl_Tests
|--------------------| |-----------|
|pr_no c_id Tests | | Tests |
|--------------------| |-----------|
|1 100 MDD | | MDD |
|1 100 FDT | | FDT |
|2 101 DMC | | DMC |
| CDD |
Result Table
tbl_test_details
|--------------------|
|pr_no c_id Tests |
|--------------------|
|1 100 MDD |
|1 100 FDT |
|1 100 DMC |
|1 100 CDD |
|2 101 MDD |
|2 101 FDT |
|2 101 DMC |
|2 101 CDD |