2012-09-13 145 views
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' 
+0

你必須使用一個腳本?您可以在SSMS中將其重命名爲Ok。 – Rikalous

回答

4

使用相同的語法CREATE TABLE ...

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

還是要靠SET QUOTED_IDENTIFIER ON和不同的分隔符

EXEC sp_rename 'MySchema."MyTab]le5"', 'MyTable6' 
+0

我無法得到第一個工作。但第二個選擇 - 謝謝。 –

+0

奇怪的是在第二種情況下,你不需要引用第二個參數,但是你先做了第一個參數。 –