我建立一個論壇,我有兩個表:插入到兩個表和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