Оператор 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.

Другие вопросы по тегам