Adi*_*tya 5 sql sql-server sql-server-2008
我使用以下SQL命令sp_rename来重命名列.
USE MYSYS;
GO
EXEC sp_rename 'MYSYS.SYSDetails.AssetName', 'AssetTypeName', 'COLUMN';
GO
Run Code Online (Sandbox Code Playgroud)
但它导致错误:
消息15248,级别11,状态1,过程sp_rename,行238
参数@objname不明确或声明的@objtype(COLUMN)错误.
请建议如何使用重命名列sp_rename.
[我使用的这个命令在Microsoft Technet上找到]
kma*_*zek 16
试试这个:
USE MYSYS;
GO
EXEC sp_rename 'SYSDetails.AssetName', 'AssetTypeName', 'COLUMN';
GO
Run Code Online (Sandbox Code Playgroud)
sp_rename(Transact-SQL)(msdn):
[@objname =]'object_name'
是用户对象或数据类型的当前限定或非限定名称.如果要重命名的对象是表中的列,则object_name必须采用table.column或schema.table.column形式. 如果要重命名的对象是索引,则object_name必须采用table.index或schema.table.index形式.如果要重命名的对象是约束,则object_name必须采用schema.constraint形式.
仅当指定了限定对象时,才需要引号. 如果提供了完全限定名称(包括数据库名称),则数据库名称必须是当前数据库的名称.object_name是nvarchar(776),没有默认值.
具有完全限定名称的语法:
USE Database
GO
EXEC sp_rename 'Database.Schema.TableName.ColumnName', 'NewColumnName', 'COLUMN';
GO
Run Code Online (Sandbox Code Playgroud)
如果要在对象名中包含完全限定名称,则还应指定模式.因此,如果您的SYSDetails表位于dbo架构中,则此代码应该适合您:
USE MYSYS;
GO
EXEC sp_rename 'MYSYS.dbo.SYSDetails.AssetName', 'AssetTypeName', 'COLUMN';
GO
Run Code Online (Sandbox Code Playgroud)