Copia en cascada de filas en sql

Encontré este hilo aquí:http: //www.sqlteam.com/forums/topic.asp? TOPIC_ID = 16836 Tengo exactamente el mismo problema. Citar

Rob Pearmain escribe "Tengo 3 tablas que contienen preguntas.

Table 1: Pregunta

Campo: ID (Único) Campo: Nombre (Texto)

Table 2: Texto de la pregunta (Referencias Table1-ID)

Field: ID (único) Campo: QuestionID (referencia entera a la ID de Table1) Campo: texto

Table 3: Opciones

Field: ID (único) Campo: QuestionTextID (número entero ref. A Table2 ID) Campo: Texto

Por ejemplo, creo una pregunta con 2 registros de texto de preguntas y 5 registros de opciones. Si quisiera duplicar esa pregunta en una nueva pregunta, y copiar los registros del Texto de la pregunta a las nuevas ID y todas las opciones relacionadas, ¿cómo puedo hacer esto fácilmente? (Como la pregunta duplicada tendrá una nueva ID, cada una de las duplicadas el texto de la pregunta tendrá nuevos ID, al igual que cada una de las opciones). "

La solución sugerida es:

create procedure CopyQuestion
@idtocopy int
AS
declare @tempquestionid
declare @tempquestiontextid
declare @questiontextid

insert into question (name)
     select name from question where id = @idtocopy

select @tempquestionid = @@identity

declare question_cursor cursor for
     select id from [question text] where id = @idtocopy
open question_cursor
fetch next from question_cursor into @questiontextid
while @@fetch_status = 0
begin
   insert into [question text] (questionid, text)
      select @tempquestionid, text from [question text] where id = @questiontextid
   select @tempquestiontextid = @@identity
      insert into [options] (questiontextid, text)
   select @tempquestiontextid, text from [options] where questiontextid = @questiontextid
   fetch next from question_cursor into @questiontextid
end
close question_cursor
deallocate question_cursor

¿Existe una mejor solución para este problema? Usaré un disparador de inserción. ¡Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta