Ваши примеры кода плохо соотносятся с остальной предоставленной информацией.Без кода ваш пост кажется достаточно последовательным, поэтому я склонен считать эти фрагменты просто ошибочными.
В любом случае, ваша идея кажется ясной.В SQL Server 2005+ вы могли бы решить вашу проблему с помощью оператора INSERT, например, такого:
string insertCommand =
"INSERT INTO Topics (Theme, Topics, Date) " +
"OUTPUT 'CONVERT(uniqueidentifier, '" + giveMeGuidID() +
"'), INSERTED.TopicID, @dateTime, @questionTitle, @subTopic " +
"INTO Threads (UserID, TopicID, Date, ThreadTitle, ThreadParagraph) " +
"VALUES (@Theme, @Topics, @Date)";
Хотя это один оператор, он выполняет две вставки в разные таблицы.«Основная» вставка вносится в таблицу Topics
.«Вторичный», в Threads
, определяется предложением OUTPUT...INTO
.По сути, предложение OUTPUT
позволяет ссылаться на вставляемые данные и либо возвращать их в виде набора строк клиенту, либо (в сочетании с INTO
) направлять их в существующую таблицу, как выможете увидеть это здесь.