bmw318mt Ответов: 1

В SQL вставить с


Привет, у меня есть этот запрос, который обновляет таблицу 1.В таблице 1 есть еще один столбец под названием OldReference с этим запросом он устанавливается в NULL, теперь мне нужно установить этот столбец в качестве значения NewReference, где затем NewRefernce будет установлен на основе запроса select.




INSERT INTO [Table1] (
    Class, DateAdded, User, [Type], NewReference
) (
    SELECT Class_ID, GetDate(), @User_ID, table2_id, @Current_Lot
    FROM Table2
        CROSS JOIN @StripList
    WHERE MType = 'Add New'
)


Что я уже пробовал:

INSERT INTO [Table1] (
    Class, DateAdded, User, [Type], OldReference, NewReference
) (
    SELECT Class_ID, GetDate(), @User_ID, table2_id, T1.OldReference, @Current_Lot
    FROM Table1 T1, Table2
        CROSS JOIN @StripList
    WHERE MType = 'Add New'
)

MayurDighe

Вы сказали: "...обновление таблицы 1...". затем попробуйте обновить запрос вместо запроса вставки. Обратитесь по этой ссылке https://goo.gl/ta8NNi

ZurdoDev

Я не понимаю, о чем вы просите.

RedDk

И что же это такое? На панели обозревателя объектов, если вы развернете "столбцы" [Table1], список доступных структурных полей даст ключ к пониманию того, что есть что ... для использования в предложении SELECT.

[no name]

Как вы можете ожидать запрос вставки, когда вы хотите обновить?

1 Ответов

Рейтинг:
9

Luca Astolfi

UPDATE T1
   SET DateAdded=GETDATE() --I believe you need a field for UpdateDate
    , User=@USER_ID
    ,Type=table2_id
    ,OldReference =t1.newReference
    ,NewReference=@Current_Lot
FROM Table1 T1, Table2
        CROSS JOIN @StripList
    WHERE MType = 'Add New'