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