我建立一个论坛,我有两个表:插入到两个表和Identity_Scope()
Threads
-------
ThreadID
UsersID
Date
ThreadTitle
ThreadParagraph
ThreadClosed
Topics
-----
TopicsID
Theme
Topics
Date
该线程ID被连接到用户表具有主键: Topics.TopicsID(PK)= = Threads.TopicID(FK)
首先我插入主题表格,然后插入线程表。我的目标是获得Topics.TopicID与Identity_Scope(标识),并把它传递给第二插件是Threads.TopicID
这里是我做了什么,但我不知道这是否是正确的:
StringBuilder insertCommand = new StringBuilder();
insertCommand.Append("DECLARE @TopicsID int");
insertCommand.Append("INSERT INTO Topics(Theme,Topics,Date)");
insertCommand.Append("VALUES('@topic,@subTopic,GETDATE()')");
insertCommand.Append("SET @TopicsID = SCOPE_IDENTITY()");
insertCommand.Append("INSERT INTO Threads(UsersID,TopicsID,Date,ThreadTitle,ThreadParagraph,ThreadClosed)");
insertCommand.Append("VALUES('@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0')");
我已经得到了用户按下或输入信息的控件获得的所有信息,所以不用担心。所有我担心的是从主题表传递相同的TopicID到线程表(列名:TopicID)。
它是'SCOPE_IDENTITY',而不是'IDENTITY_SCOPE'。看到这个相关的问题:http://stackoverflow.com/q/42648/1583 – Oded 2011-06-07 08:47:25
你需要声明变量@TopicSID – Magnus 2011-06-07 08:50:33
'VALUES('@ topic,@ subTopic,GETDATE()''是绝对错误的 - 它缺少一个终止')',并且错过了传递单独值的事实,而不是'VALUES'子句中的'''分隔符“字符串。去除'VALUES'子句中的'''标记。 – 2011-06-07 09:25:49