Sql server 是否在一个SP内使用CTE复制相关数据?
我必须为一名学生(克隆学生)复制数据 其中包括三个表格:Sql server 是否在一个SP内使用CTE复制相关数据?,sql-server,Sql Server,我必须为一名学生(克隆学生)复制数据 其中包括三个表格: TBL学生(其中PK为学生ID) TBL学生科目(其中PK为学生科目,FK为学生科目) tblStudentSubjectComments(其中PK不存在,FK为 学生(主观性) 要做到这一点,我必须 通过处理现有学生记录创建学生记录并获取新的 学生 使用创建每个现有学生科目的学生科目记录 新学生,获得新知识 学生主体 为每个现有学生创建学生主题评论记录 使用新的主题注释 学生主体 。。。希望你有主意 那么,在一个存储过程中使用CTE是否
那么,在一个存储过程中使用CTE是否有一种优雅的方法来实现这一点?(我正在使用SQL Server 2005)您是否尝试使用将初始操作的结果获取到另一个表中并重复?INSERT和UPDATE语句一次仅对单个表进行操作。您有3个表需要插入。您可以在一次操作中向表中插入多行,我认为只要有可能就可以这样做,但不能同时将行放入多个表中 这样想吧。当您查询数据时,您正在将来自多个源的记录拉入单个结果集中。修改数据时,您正在从多个源中提取记录,以将更改应用于单个结果集
另外,我也不想这么说,但有些事情并不需要一个非常优雅的解决方案。您的存储过程只需要应用一些最佳实践,以确保所有3条INSERT语句都作为一个原子事务发生(要么全部发生,要么什么也不发生)。最终结果可能冗长乏味,但它将是快速、有效、安全、可理解和可维护的。主键的数据类型是什么?它们是标识列吗?是的,它们是前两个表的标识列。我担心我会听到这样的消息:-)