Я тоже подумал об этом, но если единственным полем является текст вопроса, соединяются ли опции с text1 или text2, содержащими один и тот же текст, конечный результат копии будет точно таким же. Я согласен на сделку.

ел эту тему здесь:http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=16836 У меня точно такая же проблема. Цитата:

Роб Пирмейн пишет: «У меня есть 3 стола с вопросами.

Таблица 1: Вопрос

Поле: ID (уникальный) Поле: имя (текст)

Таблица 2: Текст вопроса (Ссылки Table1-ID)

Поле: ID (уникальный) Поле: QuestionID (целочисленный код для идентификатора таблицы1) Поле: текст

Таблица 3: Варианты

Поле: ID (уникальный) Поле: QuestionTextID (целочисленный код для идентификатора таблицы 2) Поле: текст

Скажем, например, я создаю вопрос с 2 текстовыми записями Вопроса и 5 опционными записями. Если бы я хотел продублировать этот вопрос на новый вопрос и скопировать записи «Текст вопроса» на новые идентификаторы и все связанные с ними параметры, как это можно сделать легко (поскольку дублированный вопрос будет иметь новый идентификатор, каждый из дублированных вопросов Текст вопроса будет иметь новые идентификаторы, как и каждый из вариантов). "

Предлагаемое решение:

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

Есть ли лучшее решение этой проблемы? Я буду использовать триггер вставки. Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос