【问题标题】:execute sql query from c# code for creating new sql table从 c# 代码执行 sql 查询以创建新的 sql 表
【发布时间】:2012-03-20 09:00:13
【问题描述】:

我正在尝试执行一个 sql 查询,它将在 sql 数据库中创建一个新表。当我这样做时:

string queryString = @"
CREATE TABLE [dbo].[peep_searchresults_live](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [SKU] [varchar](150) NULL,
    [ManufacturerBrand] [varchar](150) NULL,
);

查询执行得很好,并且在数据库中创建了表。

但是当我尝试这个时:

string queryString = @"
            SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[peep_searchresults_live](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [SKU] [varchar](150) NULL,
    [ManufacturerBrand] [varchar](150) NULL,            
 CONSTRAINT [PK_peep_searchresults_live] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO";

我收到这样的错误:

【问题讨论】:

  • 你在c#代码中使用了什么函数? ExecuteNonQuery?
  • @Mr 正确,我正在使用 ExecuteNonQuery

标签: c# sql winforms sql-server-2008


【解决方案1】:

SQL 服务器不理解 GO 是什么 - 只有查询分析器知道(例如 SSMS)。

如果您需要执行多个命令,只需按正确的顺序执行它们,一次一个。

【讨论】:

    【解决方案2】:

    GO 语句在 ADO.net 中无效

    您是否需要所有其他合格声明?

    您可以将每个命令分解为一个单独的命令,并通过单个连接依次执行每个命令。

    【讨论】:

    • 我正在尝试在 ID 字段上设置主键,还有其他方法可以通过代码进行吗?
    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 2011-06-14
      • 1970-01-01
      • 2018-02-21
      • 2016-12-10
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多