我手动建一个表,只有两列,一个ID列,一个名字列,ID列是自增列,把名字列设为主键。
用SQL Server的导出建表代码,如下USE [test]
GO
/****** 对象: Table [dbo].[学生表] 脚本日期: 09/28/2011 11:40:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[学生表](
[ID] [int] IDENTITY(1,1) NOT NULL,
[名字] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_学生表] PRIMARY KEY CLUSTERED
(
[名字] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF这里明显的能看到一句"[名字] ASC",说明SQL Server是把主键作为排序规则的,但我现在不想要这种排序,想要让自增列作为排序,我指的不是用SQL语句查询的时候加个"ID asc"这样,而是在打开表的时候,显示的结果,按照,ID ASC,而非"名字 ASC"
用SQL Server的导出建表代码,如下USE [test]
GO
/****** 对象: Table [dbo].[学生表] 脚本日期: 09/28/2011 11:40:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[学生表](
[ID] [int] IDENTITY(1,1) NOT NULL,
[名字] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_学生表] PRIMARY KEY CLUSTERED
(
[名字] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF这里明显的能看到一句"[名字] ASC",说明SQL Server是把主键作为排序规则的,但我现在不想要这种排序,想要让自增列作为排序,我指的不是用SQL语句查询的时候加个"ID asc"这样,而是在打开表的时候,显示的结果,按照,ID ASC,而非"名字 ASC"
order by id
--就行了.
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
试试
但如果你查询时没有将索引列作为条件列来处理,那它就不会去考虑索引.
即使用了它的索引,输出时的排序仍是按你的order来的.
Lz可以将聚集索引修改为id列,就行了
GOALTER TABLE [dbo].[学生表] ADD CONSTRAINT [PK_学生表] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]GO
USE [test]
GO
/****** 对象: Table [dbo].[学生表2] 脚本日期: 09/28/2011 11:51:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[学生表2](
[ID] [int] IDENTITY(1,1) NOT NULL,
[名字] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_学生表2] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF
只在约束条件里改成
[ID] ASC
就能达到我上面需的要求,但这只限于建表,我想修改刚才已经建好的表,怎么办