select * into #ww from biao1 order by col1
insert into #ww select * from biao1 order by col1
insert into #ww select * from biao1 order by col1
解决方案 »
- 在ACCESS中,更新表的内容
- 數據庫數據顯示問題
- asp+mssql 服务器卡网站是否有死循环 出钱求解决
- 无从下手的group by,我可能太笨了
- 求SQL解
- 怎样让数据库只接受本机连接又不影响网站的使用?
- 更新日期型字段出错
- 怎样在unix中调用Sql2000数据库。
- 小焦紧急求救,如果后天在弄不出来,会吃鱿鱼的,拨号连接数据库问题
- 在SQL SERVER中,设置某一个表的一列为IDENTITY INT,同时设此列为主键,在使用中,插入新记录时,出现错误‘插入重复主键值’,原因是SQL SERVER系统表记忆的IDENTITY列的值变小,请问怎样可直接修改此系统表?
- 一个奇怪的问题(安装)
- 关于一个sqlserver备份另一个sqlserver的问题
go
insert #t
select * from a2 order by id
go
可以的,没有问题。
确定了索引设计后,便可以在数据库的表上创建索引。Microsoft® SQL Server™ 2000 自动创建唯一索引,以强制实施 PRIMARY KEY 和 UNIQUE 约束的唯一性要求。除非表中已存在聚集索引,或者显式指定了非聚集索引,否则将会创建一个唯一的聚集索引,以实施 PRIMARY KEY 约束。除非显式指定了聚集索引,否则,默认情况下创建唯一的非聚集索引以强制 UNIQUE 约束。如果需要创建不依赖于约束的索引,可以使用 CREATE INDEX 语句。默认情况下,如果未指定聚集选项,将创建非聚集索引。创建索引时须考虑的其它事项包括: 只有表的所有者可以在同一个表中创建索引。
每个表中只能创建一个聚集索引。
每个表可以创建的非聚集索引最多为 249 个(包括 PRIMARY KEY 或 UNIQUE 约束创建的任何索引)。
包含索引的所有长度固定列的最大大小为 900 字节。例如,不可以在定义为 char(300)、char(300) 和 char (301) 的三个列上创建单个索引,因为总宽度超过了 900 字节。
包含同一索引的列的最大数目为 16。
在使用 CREATE INDEX 语句创建索引时,必须指定索引、表以及索引所应用的列的名称。作为 PRIMARY KEY 或 UNIQUE 约束的一部分或使用 SQL Server 企业管理器创建的新索引,会根据数据库表的名称,自动获得系统定义的名称。如果在一个表上创建多个索引,这些索引的名称被追加 _1、_2 等。必要时可对索引重新命名。说明 当前数据库正在备份时不能在其上创建索引。
如果在具有多个辅助索引的表上创建聚集索引,则必须重建所有辅助索引,使它们包含聚集键值而非行标识符 (RID)。同样,如果在具有多个非聚集索引的表上删除聚集索引,所有非聚集索引将作为 DROP 操作的一部分重建。这在大型表上会花很长时间。在大型表上生成索引的首选方法是以聚集索引开始,然后生成非聚集索引。除去所有索引时,首先除去非聚集索引,最后除去聚集索引。这样,就无需重建索引。聚集索引
在创建聚集索引时,将会对表进行复制,对表中的数据进行排序,然后删除原始的表。因此,数据库上必须有足够的空闲空间,以容纳数据复本。默认情况下,表中的数据在创建索引时排序。但是,如果因聚集索引已经存在,且正在使用同一名称和列重新创建,而数据已经排序,则会重建索引,而不是从头创建该索引,以自动跳过排序操作。重建操作会检查行是否在生成索引时进行了排序。如果有任何行排序不正确,即会取消操作,不创建索引。唯一索引
创建唯一索引可以确保任何生成重复键值的尝试都会失败。如果创建的单个查询导致添加了重复的和非重复的键值,SQL Server 会拒绝所有的行,包括非重复的键值。例如,如果一个单个的插入语句从表 A 检索了 20 行,然后将它们插入到表 B 中,而这些行中有 10 行包含重复键值,则默认情况下所有 20 行都将被拒绝。不过,在创建该索引时可以指定 IGNORE_DUP_KEY 子句,使得只有重复的键值才被拒绝,而非重复的键值将被添加。在上面的例子中,将只会拒绝 10 个重复的键值,其它 10 个非重复的键值将被添加到表 B 中。如果有任何重复的键值,便不能创建唯一索引。例如,如果要在 a 列和 b 列上创建唯一的组合索引,而表中有两行的 a 列同为值 1,b 列同为值 2,则无法创建唯一索引。说明 如果一个单个的列中有不止一行包含 NULL,则无法在该列上创建唯一索引。同样,如果列的组合中有多行包含 NULL 值,则不能在多个列上创建唯一索引。在创建索引时,这些被视为重复的值。
写出你的出错语句来看看
除非你用了类似下面的语句就不行
insert into 表 select * from(select * from 表 order by 列) a这种情况要改为:
insert into 表 select * from(select top 100 percent * from 表 order by 列) a
写出你的出错语句来看看
除非你用了类似下面的语句就不行
insert into 表 select * from(select * from 表 order by 列) a这种情况要改为:
insert into 表 select * from(select top 100 percent * from 表 order by 列) a
写出你的出错语句来看看
除非你用了类似下面的语句就不行
insert into 表 select * from(select * from 表 order by 列) a这种情况要改为:
insert into 表 select * from(select top 100 percent * from 表 order by 列) a
请指教。谢谢!
INSERT zpgxk(
card_id,
isnuline,
bb ,
ljth,
gxh ,
kxh ,
sxh ,
gbh ,
gbmc,
gbnr,
gjbh,
gjmc,
gjgs,
fzcl,
gzgyde,
flgyde
)
( SELECT
@card_id,
isnuline,
bb ,
ljth,
gxh ,
kxh ,
sxh ,
gbh ,
gbmc,
gbnr,
gjbh,
gjmc,
gjgs,
fzcl,
gzgyde,
flgyde
FROM zpgxk WHERE card_id =@sourceCard_id ORDER BY zpgxk.LINE_ID ASC
)
INSERT zpgxk(
card_id,
isnuline,
bb ,
ljth,
gxh ,
kxh ,
sxh ,
gbh ,
gbmc,
gbnr,
gjbh,
gjmc,
gjgs,
fzcl,
gzgyde,
flgyde
)
SELECT
@card_id,
isnuline,
bb ,
ljth,
gxh ,
kxh ,
sxh ,
gbh ,
gbmc,
gbnr,
gjbh,
gjmc,
gjgs,
fzcl,
gzgyde,
flgyde
FROM zpgxk WHERE card_id =@sourceCard_id ORDER BY zpgxk.LINE_ID ASC