我知道在SQLServer中,可以用sp_rename 来更改字段名称,
但如何用SQL语句更改ACCESS数据表的字段名呢?
11 个解决方案
#1
UPDATE
information_schema.columns SET COLUMN_NAME(要更改的列名) ='TT' (更改成的列名)
where table_name='TabLE' AND COLUMN_NAME ='要更改的列名'-
information_schema.columns SET COLUMN_NAME(要更改的列名) ='TT' (更改成的列名)
where table_name='TabLE' AND COLUMN_NAME ='要更改的列名'-
#2
To leiwenpin(一無所有) :
在Access中是没有Information_schema.Columns 的。
它只有 MSysObjects,MSysACEs,MSysObjects,MSysQueries, MSysRelationships几个系统表
在Access中是没有Information_schema.Columns 的。
它只有 MSysObjects,MSysACEs,MSysObjects,MSysQueries, MSysRelationships几个系统表
#3
create temptable
insert into temptable select * from tab
dorp tab
create table2
insert into table2 select temptab
drop temptable
insert into temptable select * from tab
dorp tab
create table2
insert into table2 select temptab
drop temptable
#4
wyb0026(小小):
这也不失为一种办法,但这种办法太危险,会产生太多的问题。
这也不失为一种办法,但这种办法太危险,会产生太多的问题。
#5
先把數據插入一個新表中,然後把原表刪除,這樣也可以達到更改表史的目的
select * into 新表 from opendatasource('.......')..表
drop table 原表
select * into 新表 from opendatasource('.......')..表
drop table 原表
#6
hdhai9451(New New People---新新人类)
这也不失为一种办法,但这种办法太危险,会产生太多的问题。
这也不失为一种办法,但这种办法太危险,会产生太多的问题。
#7
--创建链接服务器
if exists(select * from master..sysservers where srvname='srv_lnk')
exec sp_dropserver srv_lnk
go
EXEC sp_addlinkedserver
@server = 'srv_lnk',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'c:\test.mdb', --要查询的ACCESS数据库
@provstr = ';pwd=密码' --数据库密码
go
--查询ACCESS文件中具有的对象
EXEC sp_tables_ex 'srv_lnk'
--查询指定表的列信息
EXEC sp_columns_ex 'srv_lnk','表名'
if exists(select * from master..sysservers where srvname='srv_lnk')
exec sp_dropserver srv_lnk
go
EXEC sp_addlinkedserver
@server = 'srv_lnk',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'c:\test.mdb', --要查询的ACCESS数据库
@provstr = ';pwd=密码' --数据库密码
go
--查询ACCESS文件中具有的对象
EXEC sp_tables_ex 'srv_lnk'
--查询指定表的列信息
EXEC sp_columns_ex 'srv_lnk','表名'
#8
To zjcxc(邹建) :
我之所以用Access,正是因为用户那里没有SQL Server,你让我如何sp_addlinkedserver 呢??
我之所以用Access,正是因为用户那里没有SQL Server,你让我如何sp_addlinkedserver 呢??
#9
不好意思,你在sql server版发帖,习惯性地认为你是想在sql server中处理了
关于此主题请参考:
如何更改表的字段名?《ADO/DAO》
http://access911.net/index.asp?u1=a&u2=71FAB71E12DCE8F3
关于此主题请参考:
如何更改表的字段名?《ADO/DAO》
http://access911.net/index.asp?u1=a&u2=71FAB71E12DCE8F3
#10
zjcxc(邹建):
谢谢你,我本来是不想用ADOX,也不想用DAO,但看样子只能用adox了,也许DAO还更好一些。
谢谢你,我本来是不想用ADOX,也不想用DAO,但看样子只能用adox了,也许DAO还更好一些。
#11
不想用ADOX,主要是因为ADOX的DLL文件版本经常与其他程序相冲突。
#1
UPDATE
information_schema.columns SET COLUMN_NAME(要更改的列名) ='TT' (更改成的列名)
where table_name='TabLE' AND COLUMN_NAME ='要更改的列名'-
information_schema.columns SET COLUMN_NAME(要更改的列名) ='TT' (更改成的列名)
where table_name='TabLE' AND COLUMN_NAME ='要更改的列名'-
#2
To leiwenpin(一無所有) :
在Access中是没有Information_schema.Columns 的。
它只有 MSysObjects,MSysACEs,MSysObjects,MSysQueries, MSysRelationships几个系统表
在Access中是没有Information_schema.Columns 的。
它只有 MSysObjects,MSysACEs,MSysObjects,MSysQueries, MSysRelationships几个系统表
#3
create temptable
insert into temptable select * from tab
dorp tab
create table2
insert into table2 select temptab
drop temptable
insert into temptable select * from tab
dorp tab
create table2
insert into table2 select temptab
drop temptable
#4
wyb0026(小小):
这也不失为一种办法,但这种办法太危险,会产生太多的问题。
这也不失为一种办法,但这种办法太危险,会产生太多的问题。
#5
先把數據插入一個新表中,然後把原表刪除,這樣也可以達到更改表史的目的
select * into 新表 from opendatasource('.......')..表
drop table 原表
select * into 新表 from opendatasource('.......')..表
drop table 原表
#6
hdhai9451(New New People---新新人类)
这也不失为一种办法,但这种办法太危险,会产生太多的问题。
这也不失为一种办法,但这种办法太危险,会产生太多的问题。
#7
--创建链接服务器
if exists(select * from master..sysservers where srvname='srv_lnk')
exec sp_dropserver srv_lnk
go
EXEC sp_addlinkedserver
@server = 'srv_lnk',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'c:\test.mdb', --要查询的ACCESS数据库
@provstr = ';pwd=密码' --数据库密码
go
--查询ACCESS文件中具有的对象
EXEC sp_tables_ex 'srv_lnk'
--查询指定表的列信息
EXEC sp_columns_ex 'srv_lnk','表名'
if exists(select * from master..sysservers where srvname='srv_lnk')
exec sp_dropserver srv_lnk
go
EXEC sp_addlinkedserver
@server = 'srv_lnk',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'c:\test.mdb', --要查询的ACCESS数据库
@provstr = ';pwd=密码' --数据库密码
go
--查询ACCESS文件中具有的对象
EXEC sp_tables_ex 'srv_lnk'
--查询指定表的列信息
EXEC sp_columns_ex 'srv_lnk','表名'
#8
To zjcxc(邹建) :
我之所以用Access,正是因为用户那里没有SQL Server,你让我如何sp_addlinkedserver 呢??
我之所以用Access,正是因为用户那里没有SQL Server,你让我如何sp_addlinkedserver 呢??
#9
不好意思,你在sql server版发帖,习惯性地认为你是想在sql server中处理了
关于此主题请参考:
如何更改表的字段名?《ADO/DAO》
http://access911.net/index.asp?u1=a&u2=71FAB71E12DCE8F3
关于此主题请参考:
如何更改表的字段名?《ADO/DAO》
http://access911.net/index.asp?u1=a&u2=71FAB71E12DCE8F3
#10
zjcxc(邹建):
谢谢你,我本来是不想用ADOX,也不想用DAO,但看样子只能用adox了,也许DAO还更好一些。
谢谢你,我本来是不想用ADOX,也不想用DAO,但看样子只能用adox了,也许DAO还更好一些。
#11
不想用ADOX,主要是因为ADOX的DLL文件版本经常与其他程序相冲突。