我使用的SQL查询是:

ALTER TABLE oldtable RENAME TO newtable;

但是,它会给我一个错误。

服务器:Msg 156,级别15,状态1,线路1 关键字“TO”附近的语法错误。


当前回答

要在SQL Server中重命名表,使用sp_rename命令:

exec sp_rename 'schema.old_table_name', 'new_table_name'

其他回答

要在SQL Server中重命名表,使用sp_rename命令:

exec sp_rename 'schema.old_table_name', 'new_table_name'

表名

sp_rename 'db_name.old_table_name', 'new_table_name'

sp_rename 'db_name.old_table_name.name', 'userName', 'COLUMN'

指数

sp_rename 'db_name.old_table_name.id', 'product_ID', 'INDEX'

也可用于静态和数据类型

重命名一个列。

sp_rename 'table_name.old_column_name', 'new_column_name' , 'COLUMN';

重命名一个表。

sp_rename 'old_table_name','new_table_name';

如果你尝试exec sp_rename并收到一个LockMatchID错误,那么它可能会帮助添加一个use [database]语句:

我试着

 exec sp_rename '[database_name].[dbo].[table_name]', 'new_table_name';
 -- Invalid EXECUTE statement using object "Object", method "LockMatchID".

我要做的就是把它重写成:

use database_name
exec sp_rename '[dbo].[table_name]', 'new_table_name';

使用不同的模式修改表名。

例如:修改dbo。MyTable1到wrk。MyTable2

EXEC SP_RENAME 'dbo.MyTable1', 'MyTable2'

ALTER SCHEMA wrk TRANSFER dbo.MyTable2