怎样用sql语句修改一个表的名字?

ctrlpower 2000-12-23 01:00:00
...全文
4009 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ctrlpower 2000-12-24
  • 打赏
  • 举报
回复
不好意思啊,分数有点少了
Dsoul 2000-12-23
  • 打赏
  • 举报
回复
还是这个问题.我突然想起这个了.可以适合几乎所有的表中对象(包括表)

可用sp_rename改表名.详细描述如下:
sp_rename [@objname =] 'object_name',
[@newname =] 'new_name'
[, [@objtype =] 'object_type']

Arguments:
[@objname =] 'object_name'
Is the current name of the user object (table, view, column, stored procedure, trigger, default, database, object, or rule) or data type. If the object to be renamed is a column in a table, object_name must be in the form table.column. If the object to be renamed is an index, object_name must be in the form table.index. object_name is nvarchar(776), with no default.
[@newname =] 'new_name'
Is the new name for the specified object. new_name must be a one-part name and must follow the rules for identifiers. newname is sysname, with no default.
[@objtype =] 'object_type'
Is the type of object being renamed. object_type is varchar(13), with a default of NULL, and can be one of these values.

具体语法是:
EXEC sp_rename '原表名', '新表名' (T-SQL)
或者在SQL Query Analyzer里面直接用
sp_rename '原表名', '新表名'
更改.
nononono 2000-12-23
  • 打赏
  • 举报
回复
先允许bulkcopy:

exec sp_dboption @dbname ='数据库名', @optname ='bulkcopy', @optvalue = 'true'

再:
select * into newtablename from oldtablename
nononono 2000-12-23
  • 打赏
  • 举报
回复
select * into newtablename from oldtablename

是可以的。

但默认的状态是into到临时表,有个设置可以允许into到永久表。
ctrlpower 2000-12-23
  • 打赏
  • 举报
回复
楼上的老兄说的对!,我也是觉得好象用alter不能改变表的名字,我是想来问问,确定一下,我记得好象可以用select into 来copy表的结构及数据的,不只楼上的兄弟,知不知道?
Dsoul 2000-12-23
  • 打赏
  • 举报
回复
ALTER TABLE table
{ [ALTER COLUMN column_name
{ new_data_type [ (precision[, scale] ) ]
[ NULL | NOT NULL ]
| {ADD | DROP} ROWGUIDCOL
}
]
| ADD
{ [ <column_definition> ]
| column_name AS computed_column_expression
}[,...n]
| [WITH CHECK | WITH NOCHECK] ADD
{ <table_constraint> }[,...n]
| DROP
{ [CONSTRAINT] constraint_name
| COLUMN column
}[,...n]
| {CHECK | NOCHECK} CONSTRAINT
{ALL | constraint_name[,...n]}
| {ENABLE | DISABLE} TRIGGER
{ALL | trigger_name[,...n]}
}

这个够全吧?建议你去SQL Server BoL中去找.好像没有改变表名的.
应该建新表后将数据放入新表中.
Dsoul 2000-12-23
  • 打赏
  • 举报
回复
ALTER TABLE table
{ [ALTER COLUMN column_name
{ new_data_type [ (precision[, scale] ) ]
[ NULL | NOT NULL ]
| {ADD | DROP} ROWGUIDCOL
}
]
| ADD
{ [ <column_definition> ]
| column_name AS computed_column_expression
}[,...n]
| [WITH CHECK | WITH NOCHECK] ADD
{ <table_constraint> }[,...n]
| DROP
{ [CONSTRAINT] constraint_name
| COLUMN column
}[,...n]
| {CHECK | NOCHECK} CONSTRAINT
{ALL | constraint_name[,...n]}
| {ENABLE | DISABLE} TRIGGER
{ALL | trigger_name[,...n]}
}

这个够全吧?建议你去SQL Server BoL中去找.好像没有改变表名的.
应该建新表后将数据放入新表中.
ctrlpower 2000-12-23
  • 打赏
  • 举报
回复
是sql server 7.0

peacock兄我知道用alter table 但具体的语法还请你提醒!
peacock 2000-12-23
  • 打赏
  • 举报
回复
ALTER TABLE
nononono 2000-12-23
  • 打赏
  • 举报
回复
什么DBMS?

MS SQL Server不支持用命令修改表名。

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧