2011-12-18 112 views
-2

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

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

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

,并将myStudentType与学生合并,以便两个表上存在ID的所有行现在都将在学生表中具有studentName - @newname(参数) 和SP将返回所有从@students在 未更新学生表

什么是做到这一点的最好方式记录的列表(与合并的首选)

感谢

+0

我只有部分使用合并来更新学生表中的所有行...我不知道如何获得所有的记录没有更新参数中的sp – 2011-12-19 05:17:55

回答

0

规范的,我认为将是最棘手的部分是:

SP将返回所有从@students在学生表未更新的记录的列表

我认为'列表'规范意味着'表'(T-SQL没有“列表”类型的概念)。输出参数不能是TABLE类型(包括用户定义的表类型)。虽然函数可以返回表,但不能通过函数更新基表。欲了解更多细节和可能的解决方案,请参阅Erland Sommarskog的How to Share Data Between Stored Procedures