2
在SQL Server中多次运行alter table alter column语句是否有负面影响?在SQL Server中多次运行alter table alter column语句
说我改变列的数据类型和为空这样的:
--create table
create table Table1
(
Column1 varchar(50) not null
)
go
--insert some records
insert into Table1 values('a')
insert into Table1 values('b')
go
--alter once
alter table Table1
alter column Column1 nvarchar(250) not null
go
--alter twice
alter table Table1
alter column Column1 nvarchar(250) not null
go
以上组SQL所有的作品,我已经测试了这些。我也可以测试alter语句中的属性。问题是,在修改之前检查列是否已经是空的,是否有优势?
第一次更改后,SQL Server是否发现表已经被修改,因此第二个修改本质上什么都不做?
不同版本的SQL Server之间有关于如何处理的任何差异?
谢谢, 伊利亚斯
你试过了吗?怎么了?此外,您可以先检查您的列是否存在,或者检查其他属性并有条件地执行alter语句。 – Jeremy
我想不出有什么不同。您的语句在自己的BATCH中是独立的,因为它必须是(即'GO'语句)。例如,尝试添加一列并在同一批次中引用它。它会出错。 – scsimon
@Jeremy我已经试过并按预期工作,我已经编辑了这个问题,希望能够说清楚。谢谢。 – ilias