Оператор MERGE в SQL Server 2008
У меня есть стол student(int ID, nvarchar(10) studentName)
и тип таблицы пользователя myStudentType (int ID, nvarchar(10) studentName)
Мне нужно создать хранимую процедуру, которая принимает myStudentType
параметр (@students
) и параметр @newname
mySp(@students myStudentType, @newname nvarchar(10))
и сливается myStudentType
со студентом, так что все строки с идентификаторами, которые существуют в обеих таблицах, теперь будут в таблице студента иметь для studentName
- @newname
(параметр) и sp вернет список всех записей из @students, которые не были обновлены в таблице студента
Каков наилучший способ сделать это (предпочтительнее слияния)
Спасибо
1 ответ
Часть спецификации, которая, я думаю, будет наиболее проблематичной:
sp выдаст список всех записей из @students, которые не были обновлены в таблице учеников
Я предполагаю, что под "списком" спецификация подразумевает "таблицу" (T-SQL не имеет понятия типа "список"). Выходной параметр не может быть TABLE
тип (включая определяемые пользователем типы таблиц). Хотя функция может возвращать таблицу, вы не можете обновить базовые таблицы с помощью функции. Дополнительные сведения и возможные решения см. В разделе " Как обмениваться данными между хранимыми процедурами ", автор Erland Sommarskog.