Cópia cascade de linhas em sql

Encontrei este tópico aqui:http: //www.sqlteam.com/forums/topic.asp? TOPIC_ID = 16836 Eu tenho exatamente o mesmo problema. Citar

Robert Pearmain escreve "Eu tenho 3 tabelas que contêm perguntas.

Tabela 1: Pergunta

Campo: campo ID (exclusivo): Nome (texto)

Tabela 2: Texto da pergunta (Referências Tabela1-ID)

Field: campo ID (exclusivo): QuestionID (número inteiro ref da tabela1 ID) Campo: texto

Tabela 3: Opções

Campo: campo ID (exclusivo): QuestionTextID (número inteiro ref da tabela2 ID) Campo: texto

Diga, por exemplo, que eu crio uma pergunta com 2 registros de texto de pergunta e 5 registros de opção. Se eu quisesse duplicar essa pergunta para uma nova pergunta e copiar os registros de Texto da pergunta para novos IDs e todas as opções relacionadas, como posso fazer isso facilmente (como a pergunta duplicada terá um novo ID, cada um dos duplicados os textos das perguntas terão novos IDs, assim como cada uma das opções). "

A solução sugerida é:

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 uma solução melhor para este problema? Vou usar um gatilho de inserção. Obrigado

questionAnswers(2)

yourAnswerToTheQuestion