Оператор MERGE в SQL Server 2008 - PullRequest
0 голосов
/ 18 декабря 2011

у меня есть стол 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 Ответ

0 голосов
/ 19 декабря 2011

Часть спецификации, которая, на мой взгляд, будет наиболее проблемной:

sp выдаст список всех записей из @students, которые не были обновлены в таблице учеников

Я предполагаю, что под «списком» спецификация подразумевает «таблицу» (T-SQL не имеет понятия типа «список»).Выходной параметр не может иметь тип TABLE (включая определяемые пользователем типы таблиц).Хотя функция может возвращать таблицу, вы не можете обновить базовые таблицы с помощью функции.Для получения более подробной информации и возможных решений см. Как обмениваться данными между хранимыми процедурами by Erland Sommarskog.

...