Swi*_*tch 361 sql-server rename alter-table
SQL我使用的查询是:
ALTER TABLE oldtable RENAME TO newtable;
Run Code Online (Sandbox Code Playgroud)
但是,它给了我一个错误.
服务器:消息156,级别15,状态1,行1
关键字"TO"附近的语法不正确.
Jef*_*nby 662
要在SQL Server中重命名表,请使用以下sp_rename命令:
exec sp_rename 'schema.old_table_name', 'new_table_name'
Run Code Online (Sandbox Code Playgroud)
小智 138
要重命名列:
sp_rename 'table_name.old_column_name', 'new_column_name' , 'COLUMN';
Run Code Online (Sandbox Code Playgroud)
要重命名表:
sp_rename 'old_table_name','new_table_name';
Run Code Online (Sandbox Code Playgroud)
小智 14
使用sp_rename时,如上面的答案一样,检查重命名后哪些对象受影响,引用该表,因为你也需要更改它们
我在Pinal Dave的博客中找到了表依赖的代码示例
USE AdventureWorks
GO
SELECT
referencing_schema_name = SCHEMA_NAME(o.SCHEMA_ID),
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_schema_name,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc = o1.type_desc,
referenced_server_name, referenced_database_name
--,sed.* -- Uncomment for all the columns
FROM
sys.sql_expression_dependencies sed
INNER JOIN
sys.objects o ON sed.referencing_id = o.[object_id]
LEFT OUTER JOIN
sys.objects o1 ON sed.referenced_id = o1.[object_id]
WHERE
referenced_entity_name = 'Customer'
Run Code Online (Sandbox Code Playgroud)
因此,所有这些依赖对象也需要更新
或者如果可以的话,使用一些加载项,其中一些具有重命名对象的功能,并且所有依赖,也是ent对象
Sti*_*ian 10
如果您尝试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".
Run Code Online (Sandbox Code Playgroud)
我需要做的就是将其重写为:
use database_name
exec sp_rename '[dbo].[table_name]', 'new_table_name';
Run Code Online (Sandbox Code Playgroud)
表名
sp_rename 'db_name.old_table_name', 'new_table_name'
Run Code Online (Sandbox Code Playgroud)
柱
sp_rename 'db_name.old_table_name.name' 'userName', 'COLUMN'
Run Code Online (Sandbox Code Playgroud)
指数
sp_rename 'db_name.old_table_name.id', 'product_ID', 'INDEX'
Run Code Online (Sandbox Code Playgroud)
也可用于静态和数据类型
要更改具有不同架构的表名称:
示例:将 dbo.MyTable1 更改为 wrk.MyTable2
EXEC SP_RENAME 'dbo.MyTable1', 'MyTable2'
ALTER SCHEMA wrk TRANSFER dbo.MyTable2
Run Code Online (Sandbox Code Playgroud)