2011-03-09 27 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

相關問題