C# C应用程序中的SQL查询
我需要创建以下查询C# C应用程序中的SQL查询,c#,sql,database,ado.net,C#,Sql,Database,Ado.net,我需要创建以下查询 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 [
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)"
但不知道如何处理下一部分。有人能帮我吗?你的意思是将查询加载到字符串中?您可以使用@multi-line字符串语法:
string query2 = @"
ALTER TABLE [dbo].[soft] WITH NOCHECK ADD
CONSTRAINT [PK_image] PRIMARY KEY NONCLUSTERED
(
[img_pk]
) ON [PRIMARY]
";
“在小学……”。。顺便说一下,GO'是第一个查询的一部分
要执行此操作,您需要使用以下内容
var command2 = dbConnection.CreateCommand();
command2.CommandText = query2;
command2.ExecuteNonQuery();
像往常一样。您的意思是将查询加载到字符串中?您可以使用@multi-line字符串语法:
string query2 = @"
ALTER TABLE [dbo].[soft] WITH NOCHECK ADD
CONSTRAINT [PK_image] PRIMARY KEY NONCLUSTERED
(
[img_pk]
) ON [PRIMARY]
";
“在小学……”。。顺便说一下,GO'是第一个查询的一部分
要执行此操作,您需要使用以下内容
var command2 = dbConnection.CreateCommand();
command2.CommandText = query2;
command2.ExecuteNonQuery();
与往常一样。您可以组合表和主键定义:
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
如果[PRIMARY]上的文本图像是您的默认文件组,那么您可以省去[PRIMARY]上的额外“ON[PRIMARY]TEXTIMAGE_”,这是许多最常用的文件组?案例
此外,我还将PK创建为集群,这对于auto inc列更为常见
:
将显示ntext、text和image数据类型
将在的未来版本中删除
Microsoft SQL Server。避免使用
这些数据类型正在进行新的开发
工作,并计划修改应用程序
目前正在使用它们的。使用
nvarcharmax、varcharmax和
而不是varbinarymax
您可以组合表和主键定义:
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
如果[PRIMARY]上的文本图像是您的默认文件组,那么您可以省去[PRIMARY]上的额外“ON[PRIMARY]TEXTIMAGE_”,这是许多最常用的文件组?案例
此外,我还将PK创建为集群,这对于auto inc列更为常见
:
将显示ntext、text和image数据类型
将在的未来版本中删除
Microsoft SQL Server。避免使用
这些数据类型正在进行新的开发
工作,并计划修改应用程序
目前正在使用它们的。使用
nvarcharmax、varcharmax和
而不是varbinarymax
使用单行查询时遇到的任何问题
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";
使用单行查询时遇到的任何问题
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";
我支持Mitch的建议绝对没有理由在创建查询过程中无法创建PKs。我支持Mitch的建议绝对没有理由在创建查询过程中无法创建PKs。你能更具体地说明你在问什么或是什么绊倒了你吗?顺便说一句,您的CREATE语句缺少原始查询中[PRIMARY]文本图像_ON[PRIMARY]上的语句。您能否更具体地说明您的问题或绊倒您的原因?顺便说一句,您的CREATE语句缺少原始查询中[PRIMARY]上的[PRIMARY]文本图像_。