2011-03-09 73 views
1

我需要创建下面的查询SQL查询在C#应用程序

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

但不知道怎样与下一个部分的工作。谁能帮我?

+0

你可以更具体地说明你在问什么,或者是什么让你起床?顺便说一句,您拥有的'CREATE'语句缺少原始查询中的ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]'。 – 2011-03-09 13:29:39

回答

0

你的意思只是加载查询到一个字符串?您可以使用@“”多行字符串语法:

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

(在“ON PRIMARY ... GO”是第一次查询的一部分,顺便说一句。)

要执行这个你” d使用像

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

像往常一样。

+0

谢谢,Rup,这真的对我有用! – Eliazar 2011-03-09 13:38:41

4

您可以将表和主键定义:

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作为集群,这对于auto-inc列更为常见。

Also

的ntext,文本和图像数据类型将 在 微软SQL Server的未来版本中删除。避免在新开发 工作中使用 这些数据类型,并计划修改当前使用它们的应用程序 。改为使用 nvarchar(max),varchar(max)varbinary(max)

+0

我第二次去米奇的建议 – 2011-03-09 13:28:44

+0

绝对没有理由不能在CREATE查询期间创建PK。 – jlafay 2011-03-09 13:35:11

0

您在使用单行查询时遇到的任何问题?

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

这不是合法的SQL – 2011-03-09 13:34:55