У меня есть переменные таблицы @searchResult
:Обновления переменной
DECLARE @searchResult TABLE (
[name_template] NVARCHAR(50),
[record_id] INT,
[record_name] NVARCHAR(50)
);
И стол [records]
:
CREATE TABLE [records] (
[record_id] INT IDENTITY(1, 1) PRIMARY KEY,
[record_name] NVARCHAR(50)
)
@searchResult
содержит записи с [name_template]
заполнена только. Я хочу обновить его последними [record_id]
и [record_name]
от [records]
стол, который соответствует [name_template]
.
Я попытался folowing SQL запрос без успеха:
UPDATE @searchResult
SET [record_id] = r.[record_id], [record_name] = r.[record_name]
FROM (
SELECT TOP 1
r.[record_id]
, r.[record_name]
FROM [records] AS r
WHERE r.[record_name] LIKE [name_template]
ORDER BY r.[record_id] DESC
) AS r;
Сообщение об ошибке:
Invalid имя столбца 'name_template'.
Что такое правильный синтаксис для обновления @searchResult
с требуемыми значениями?
Посмотрите, что ваш запрос используется для обновления. Я полагаю, что в записях таблицы нет столбца с именем name_template? Это переменная таблицы. Помните, что ваш запрос должен выполняться сам по себе. Это означает, что в этом случае вам нужно присоединиться к вашей переменной таблицы в запросе. –
цитаты отсутствуют ..like 'name_template' или like '% name_template%' – TheGameiswar
Возможный дубликат [обновление одной таблицы с данными от другого] (http://stackoverflow.com/questions/5036918/update-one-table-with- data-from-another) –