0

当表名包含“]”字符时,我找不到在 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'
4

1 回答 1

4

使用与 CREATE TABLE 相同的语法...

EXEC sp_rename 'MySchema.[MyTab]]le5]', 'MyTable6'

或者依靠SET QUOTED_IDENTIFIER ON 和不同的分隔符

EXEC sp_rename 'MySchema."MyTab]le5"', 'MyTable6'
于 2012-09-13T14:13:34.297 回答