当表名包含']'字符时,我无法找到在T-SQL中重命名表的正确语法。
似乎sp_rename过程不使用与T-SQL DDL相同的转义规则。
如何做到这一点?
CREATE SCHEMA MySchema
CREATE TABLE [MySchema].[MyTab]]le5](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[SomeField] [bigint] NULL,
[MyField] [nvarchar](4000) NULL)
EXEC sp_rename 'MySchema.MyTa]ble5', 'MyTable6'
答案 0 :(得分:4)
使用与CREATE TABLE ...
相同的语法EXEC sp_rename 'MySchema.[MyTab]]le5]', 'MyTable6'
或依靠SET QUOTED_IDENTIFIER ON和不同的分隔符
EXEC sp_rename 'MySchema."MyTab]le5"', 'MyTable6'