SQL Server 2008中的MERGE语句



我有一个表student(int ID, nvarchar(10) studentName)和表用户类型为myStudentType (int ID, nvarchar(10) studentName)

我需要创建一个存储过程,它接受一个myStudentType参数(@students)和一个参数@newname

mySp(@students myStudentType, @newname nvarchar(10))

并将myStudentType与student合并,这样在student表中存在的所有具有id的行现在都具有studentName - @newname(参数)。并且sp将返回@students中未更新的所有记录的列表学生表

最好的方法是什么?(首选合并)

谢谢

我认为规范中最有问题的部分是:

sp将返回student表中未更新的@students的所有记录的列表

我假设这里的'list'意味着'table' (T-SQL没有'list'类型的概念)。输出参数不能是TABLE类型(包括用户定义的表类型)。虽然函数可以返回表,但不能通过函数更新基表。有关更多详细信息和可能的解决方案,请参见Erland Sommarskog的如何在存储过程之间共享数据。

最新更新