的方式添加一个字段
可是添加的字段都是在现有字段的后面
24 个解决方案
#1
可以的,但是比较麻烦。
修改syscolumns表中各列的列号,让它们的列号+1,然后把你加入的该列的列号设置为1,就可以了
修改syscolumns表中各列的列号,让它们的列号+1,然后把你加入的该列的列号设置为1,就可以了
#2
不能!
除非你重建一个table。
除非你重建一个table。
#3
真的有这种必要吗????
#4
alter table employee add test1 int null
go
sp_configure 'allow updates',1
RECONFIGURE WITH override
go
UPDATE syscolumns SET colid=colid+1
WHERE id=object_id('employee')
update syscolumns set colid=1
where id=object_id('employee') and name='test1'
go
sp_configure 'allow updates',0
RECONFIGURE WITH override
#5
插入的该列已经成为第一列了
#6
楼上的做法是很危险的,最好不轻易去修改系统表
#7
好像有错误,消息 259,级别 16,状态 1,第 1 行
不允许对系统目录进行即席更新。
#8
需要这么麻烦吗?
去企业管理器 --> 右键点你想加字段的表 --> Design表 --> 右键点第一列 --> Insert字段 -->加入你想加的内容-->关闭 ---> 会问你要不要改 ---> 是 ---> OVER.
去企业管理器 --> 右键点你想加字段的表 --> Design表 --> 右键点第一列 --> Insert字段 -->加入你想加的内容-->关闭 ---> 会问你要不要改 ---> 是 ---> OVER.
#9
SQLSERVER2000才支持即席更新
楼主的难道是SQLSERVER2005
楼主的难道是SQLSERVER2005
#10
1:没必要
2:2000以后的版本是不允许你修改系统表的,所以更没必要.
2:2000以后的版本是不允许你修改系统表的,所以更没必要.
#11
我的是2000的。lz的执行顺序贴出来看看
#12
直接在企业管理器里面修改字段的顺序
最好不要修改系统表结构!
#13
原表:
create table Tbb(aa nchar(10) NULL,a int NULL,b varchar(100) NULL)
insert into Tbb select 1,1,1
insert into Tbb select 2,2,2
--增长一列ff,使之位于第一列:
CREATE TABLE dbo.Tmp_Tbb
(
ff nchar(10) NULL,
aa nchar(10) NULL,
a int NULL,
b varchar(100) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.Tbb)
EXEC('INSERT INTO dbo.Tmp_Tbb (aa, a, b)
SELECT aa, a, b FROM dbo.Tbb WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.Tbb
GO
EXECUTE sp_rename N'dbo.Tmp_Tbb', N'Tbb'
GO
#14
13楼是sql server管理界面执行原理。
#15
为什么一定要在第一列呢?
#16
新建一个临时表,然后再把原表删除再rename临时表就可以了!!
#17
--当一个栏位被删除后,重新建立后,其位置不在原来的地方,如果想恢复该栏位在表中的出现的顺序,需更
--改栏位在syscolumns的colid值,其具体步骤如下:
create table test_column(a char(1) null,b char(2) null,c char(1) null,d char(2)null)
--栏位被删除前的顺序
select * from test_column
alter table test_column drop column c
--栏位被删除后的顺序
select * from test_column
alter table test_column add c varchar(1) null
--栏位被添加后的顺序
select * from test_column
--更改栏位的顺序:
sp_configure 'allow updates','1'
go
reconfigure with override
update syscolumns set colid=colid+1 where colid>3 and id=object_id('test_column')
update syscolumns set colid=3 where name='c' and id=object_id('test_column')
sp_configure 'allow updates','0'
go
reconfigure with override
go
#18
我用的是2000。
遇到这种情况我都是到企业管理器中进行修改。
毕竟这种情况不多,所以懒得考虑太复杂的修改办法!
是不是正是这样的原因,我的技巧不够?
遇到这种情况我都是到企业管理器中进行修改。
毕竟这种情况不多,所以懒得考虑太复杂的修改办法!
是不是正是这样的原因,我的技巧不够?
#19
我现在急需要这方面的资料
现在我用sql语句添加了一列值,但是这个值本来显示的位置是13,但是现在它显示在20的这个位置上,我想在修改一下它的显示位置,要改回到13这个位置上去,怎么修改呢?
现在我用sql语句添加了一列值,但是这个值本来显示的位置是13,但是现在它显示在20的这个位置上,我想在修改一下它的显示位置,要改回到13这个位置上去,怎么修改呢?
#20
完全没必要,使用数据的时候,你又不用到DB里面看,使用数据的时候调整好顺序就OK了
#21
我覺得這個修改根本是沒有必要,無意義的。
你只要在前台程序中把這個字段顯示在你想要的列就行了
你只要在前台程序中把這個字段顯示在你想要的列就行了
#22
直接用图形化界面操作不就得了
#23
顺序有那么重要么。
查询和插入的时候指定顺序,这也是规范的写法。
查询和插入的时候指定顺序,这也是规范的写法。
#24
什么需求都有啊 学习了
#1
可以的,但是比较麻烦。
修改syscolumns表中各列的列号,让它们的列号+1,然后把你加入的该列的列号设置为1,就可以了
修改syscolumns表中各列的列号,让它们的列号+1,然后把你加入的该列的列号设置为1,就可以了
#2
不能!
除非你重建一个table。
除非你重建一个table。
#3
真的有这种必要吗????
#4
alter table employee add test1 int null
go
sp_configure 'allow updates',1
RECONFIGURE WITH override
go
UPDATE syscolumns SET colid=colid+1
WHERE id=object_id('employee')
update syscolumns set colid=1
where id=object_id('employee') and name='test1'
go
sp_configure 'allow updates',0
RECONFIGURE WITH override
#5
插入的该列已经成为第一列了
#6
楼上的做法是很危险的,最好不轻易去修改系统表
#7
好像有错误,消息 259,级别 16,状态 1,第 1 行
不允许对系统目录进行即席更新。
#8
需要这么麻烦吗?
去企业管理器 --> 右键点你想加字段的表 --> Design表 --> 右键点第一列 --> Insert字段 -->加入你想加的内容-->关闭 ---> 会问你要不要改 ---> 是 ---> OVER.
去企业管理器 --> 右键点你想加字段的表 --> Design表 --> 右键点第一列 --> Insert字段 -->加入你想加的内容-->关闭 ---> 会问你要不要改 ---> 是 ---> OVER.
#9
SQLSERVER2000才支持即席更新
楼主的难道是SQLSERVER2005
楼主的难道是SQLSERVER2005
#10
1:没必要
2:2000以后的版本是不允许你修改系统表的,所以更没必要.
2:2000以后的版本是不允许你修改系统表的,所以更没必要.
#11
我的是2000的。lz的执行顺序贴出来看看
#12
直接在企业管理器里面修改字段的顺序
最好不要修改系统表结构!
#13
原表:
create table Tbb(aa nchar(10) NULL,a int NULL,b varchar(100) NULL)
insert into Tbb select 1,1,1
insert into Tbb select 2,2,2
--增长一列ff,使之位于第一列:
CREATE TABLE dbo.Tmp_Tbb
(
ff nchar(10) NULL,
aa nchar(10) NULL,
a int NULL,
b varchar(100) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.Tbb)
EXEC('INSERT INTO dbo.Tmp_Tbb (aa, a, b)
SELECT aa, a, b FROM dbo.Tbb WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.Tbb
GO
EXECUTE sp_rename N'dbo.Tmp_Tbb', N'Tbb'
GO
#14
13楼是sql server管理界面执行原理。
#15
为什么一定要在第一列呢?
#16
新建一个临时表,然后再把原表删除再rename临时表就可以了!!
#17
--当一个栏位被删除后,重新建立后,其位置不在原来的地方,如果想恢复该栏位在表中的出现的顺序,需更
--改栏位在syscolumns的colid值,其具体步骤如下:
create table test_column(a char(1) null,b char(2) null,c char(1) null,d char(2)null)
--栏位被删除前的顺序
select * from test_column
alter table test_column drop column c
--栏位被删除后的顺序
select * from test_column
alter table test_column add c varchar(1) null
--栏位被添加后的顺序
select * from test_column
--更改栏位的顺序:
sp_configure 'allow updates','1'
go
reconfigure with override
update syscolumns set colid=colid+1 where colid>3 and id=object_id('test_column')
update syscolumns set colid=3 where name='c' and id=object_id('test_column')
sp_configure 'allow updates','0'
go
reconfigure with override
go
#18
我用的是2000。
遇到这种情况我都是到企业管理器中进行修改。
毕竟这种情况不多,所以懒得考虑太复杂的修改办法!
是不是正是这样的原因,我的技巧不够?
遇到这种情况我都是到企业管理器中进行修改。
毕竟这种情况不多,所以懒得考虑太复杂的修改办法!
是不是正是这样的原因,我的技巧不够?
#19
我现在急需要这方面的资料
现在我用sql语句添加了一列值,但是这个值本来显示的位置是13,但是现在它显示在20的这个位置上,我想在修改一下它的显示位置,要改回到13这个位置上去,怎么修改呢?
现在我用sql语句添加了一列值,但是这个值本来显示的位置是13,但是现在它显示在20的这个位置上,我想在修改一下它的显示位置,要改回到13这个位置上去,怎么修改呢?
#20
完全没必要,使用数据的时候,你又不用到DB里面看,使用数据的时候调整好顺序就OK了
#21
我覺得這個修改根本是沒有必要,無意義的。
你只要在前台程序中把這個字段顯示在你想要的列就行了
你只要在前台程序中把這個字段顯示在你想要的列就行了
#22
直接用图形化界面操作不就得了
#23
顺序有那么重要么。
查询和插入的时候指定顺序,这也是规范的写法。
查询和插入的时候指定顺序,这也是规范的写法。
#24
什么需求都有啊 学习了