что за скрипт для изменения столбца таблицы? - PullRequest
1 голос
/ 08 ноября 2011

Предположим, у меня есть таблица типа Tab (col1 varchar (50), ....)

Тогда я хочу изменить столбец col1 на col1 varchar (100). SQL Server Management Studio сгенерировал сценарий для этой задачи как:

CREATE TABLE dbo.Tmp_Tab
    (
    Col1 varbinary(100) NULL
    )  ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_Tab SET (LOCK_ESCALATION = TABLE)
GO
IF EXISTS(SELECT * FROM dbo.Tab)
     EXEC('INSERT INTO dbo.Tmp_Tab (Col1)
        SELECT Col1 FROM dbo.Tab WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.Tab
GO
EXECUTE sp_rename N'dbo.Tmp_Tab', N'Tab', 'OBJECT' 
GO

Это слишком сложно. Какой-нибудь простой скрипт, такой как Alter table для такого рода изменений?

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Поскольку переход с varchar (50) на varchar (100) не требует преобразования данных, вы можете просто сделать:

alter table Tab
alter column Col1 varchar(100) null;
0 голосов
/ 08 ноября 2011

От varbinary(50) до varbinary(100) - это просто изменение метаданных

ALTER TABLE dbo.Tab ALTER COLUMN Col1 varbinary(100) NULL

То же самое относится к varchar(50) к varchar(100)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...