SQL-запрос в приложении C # - PullRequest
1 голос
/ 09 марта 2011

Мне нужно создать следующий запрос

CREATE TABLE [dbo].[soft] (
[img_pk] [int] IDENTITY (1, 1) NOT NULL ,
[name] [varchar] (50) NULL ,
[img_data] [image] NULL ,
[img_contenttype] [varchar] (50) NULL, 
[file_data] [image] NULL ,
[file_contenttype] [varchar] (50) NULL 
) 

ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[soft] WITH NOCHECK ADD 
CONSTRAINT [PK_image] PRIMARY KEY NONCLUSTERED 
(
[img_pk]
) ON [PRIMARY]
GO

Нет проблем с первой частью, она решается, как

string query1 = "CREATE TABLE soft" +
   "(pk int IDENTITY (1, 1) NOT NULL," +
  "name VARCHAR(50) NULL, img_data IMAGE NULL, img_contenttype VARCHAR(50) NULL, file_data IMAGE NULL, file_contenttype VARCHAR(50) NULL)"

Но нет идей, как работать со следующей частью.Кто-нибудь может мне помочь?

Ответы [ 3 ]

4 голосов
/ 09 марта 2011

Вы можете объединить определения таблиц и первичных ключей:

CREATE TABLE [dbo].[soft] 
( 
   [img_pk] [int] IDENTITY (1, 1) NOT NULL 
       CONSTRAINT PK_Image PRIMARY KEY CLUSTERED, 
   [name] [varchar] (50) NULL , 
   [img_data] [image] NULL , 
   [img_contenttype] [varchar] (50) NULL,  
   [file_data] [image] NULL , 
   [file_contenttype] [varchar] (50) NULL  
)  
GO

Вы можете обойтись без дополнительного 'ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]', если это ваша файловая группа по умолчанию, во многихбольшинство?) случаев

Кроме того, я создал PK как кластеризованный, что более обычно для столбца с автоинклюзией.

Также :

Типы данных ntext, text и image будут удалены в следующей версии Microsoft SQL Server.Избегайте использования этих типов данных в новых разработках и планируйте модифицировать приложения, которые их используют в настоящее время.Вместо этого используйте nvarchar(max), varchar(max) и varbinary(max).

0 голосов
/ 09 марта 2011

С какими проблемами вы сталкиваетесь при использовании однострочных запросов ??

string query = "ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[soft] WITH NOCHECK ADD CONSTRAINT [PK_image] PRIMARY KEY NONCLUSTERED ( [img_pk] ) ON [PRIMARY] GO";
0 голосов
/ 09 марта 2011

Вы имеете в виду просто загрузить запрос в строку?Вы можете использовать многострочный синтаксис @ "":

string query2 = @"
ALTER TABLE [dbo].[soft] WITH NOCHECK ADD 
CONSTRAINT [PK_image] PRIMARY KEY NONCLUSTERED 
(
[img_pk]
) ON [PRIMARY]
";

(Кстати, 'ON PRIMARY .. GO' является частью первого запроса.)

выполнив это, ты будешь использовать что-то вроде

var command2 = dbConnection.CreateCommand();
command2.CommandText = query2;
command2.ExecuteNonQuery();

как обычно.

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