我的 SQL 语句有问题

发布于 2024-11-14 06:20:21 字数 845 浏览 10 评论 0原文

    Threads 
------- 
ThreadID
 UsersID 
Date 
ThreadTitle
 ThreadParagraph 
ThreadClosed 

  Topics 
-----
 TopicsID 
Theme
 Topics 
Date 

这是我的声明:

  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)");

我明白了:

关键字附近的语法不正确 '进入'。必须声明标量 变量“@TopicsID”。必须声明 标量变量“@TopicsID”。

    Threads 
------- 
ThreadID
 UsersID 
Date 
ThreadTitle
 ThreadParagraph 
ThreadClosed 

  Topics 
-----
 TopicsID 
Theme
 Topics 
Date 

Here is my statement:

  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)");

I get this:

Incorrect syntax near the keyword
'INTO'. Must declare the scalar
variable "@TopicsID". Must declare the
scalar variable "@TopicsID".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦里梦着梦中梦 2024-11-21 06:20:21

我注意到的第一件事是:

insertCommand.Append("VALUES('@topic,@subTopic,GETDATE()')");

可能需要是:

insertCommand.Append("VALUES(@topic,@subTopic,GETDATE())");

看起来你在那里有一些额外的单引号。

The first thing I notice is:

insertCommand.Append("VALUES('@topic,@subTopic,GETDATE()')");

might need to be:

insertCommand.Append("VALUES(@topic,@subTopic,GETDATE())");

It looks like you have some extra single quotes in there.

忘东忘西忘不掉你 2024-11-21 06:20:21

DECLARE @TopicsID int 之后需要一个分号

这将处理“不正确的语法”并声明标量变量。

我相信您需要删除三个 VALUES 周围的单引号。这导致它认为您只提供了一个 VALUE 而不是三个。

You need a semi-colon after DECLARE @TopicsID int

That will take care of the "incorrect syntax" and declaring the scalar variable.

And I believe that you need to remove the single quotes around your three VALUES. That is causing it to think you have supplied only one VALUE instead of three.

冷清清 2024-11-21 06:20:21

尝试
insertCommand.AppendLine

SQL 看到

DECLARE @TopicsID intINSERT INTO Topics(Theme,Topics,Date) ...

您需要分隔不同的语句

Try
insertCommand.AppendLine

SQL sees

DECLARE @TopicsID intINSERT INTO Topics(Theme,Topics,Date) ...

You need to separate the distinct statements

掩耳倾听 2024-11-21 06:20:21

最后一行的单引号是错误的 - 它把它全部变成一个字符串:

更改

  insertCommand.Append("VALUES('@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0')");

insertCommand.Append("VALUES(@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0)");

Your single quotes on the last line are wrong - its turning it all onto one string:

Change

  insertCommand.Append("VALUES('@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0')");

to

insertCommand.Append("VALUES(@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0)");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文