выполнить SQL-запрос из кода C # для создания новой таблицы SQL - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь выполнить запрос 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";

Я получаю ошибку, подобную этой:

enter image description here

Ответы [ 3 ]

3 голосов
/ 02 марта 2012

Сервер SQL не понимает, что такое GO - знает только анализатор запросов (например, SSMS).

Если вам нужно выполнить несколько команд, просто выполните их в правильном порядке, по одномувремя.

0 голосов
/ 02 марта 2012

Вы не можете использовать go, вам нужно разделить команду на несколько наборов.

http://social.msdn.microsoft.com/Forums/ar/csharpgeneral/thread/2907541f-f1cf-40ea-8291-771734de55f2

0 голосов
/ 02 марта 2012

GO операторы недопустимы в ADO.net

Вам нужны все эти другие уточняющие утверждения?

Вы можете разбить каждую на отдельную команду и выполнять каждую команду по очереди с помощью одного соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...