web-dev-qa-db-ja.com

SQL Serverの列のデータ型をどのように変更しますか?

列をvarchar(50)からnvarchar(200)に変更しようとしています。このテーブルを変更するためのSQLコマンドは何ですか?

313
Ascalonian
ALTER TABLE TableName 
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL]

_ edit _ 前述のように、NULL/NOT NULLが指定されているはずです。 Rob's answer も参照してください。

525
cmsjr

NULL可能性を忘れないでください。

ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
169
Rob Garrison

Alter tableステートメントを使用してください。

Alter table TableName Alter Column ColumnName nvarchar(100)
21
John Sansom

SQL Server(Transact-SQL)の既存のテーブルの列を変更するための構文は次のとおりです。

ALTER TABLE table_name
    ALTER COLUMN column_name column_type;

例えば:

ALTER TABLE employees
    ALTER COLUMN last_name VARCHAR(75) NOT NULL;

このSQL ServerのALTER TABLEの例では、last_nameという列をVARCHAR(75)のデータ型に変更し、列にNULL値を許可しないようにします。

参照してください ここ

11
Yogesh Bende

Varcharのサイズを大きくしている限り、問題ありません。 テーブルの変更 referenceのとおり

列の精度またはスケールを下げると、データが切り捨てられる可能性があります。

3
jocassid

データ型を変更する場合

alter table table_name 
alter column column_name datatype [NULL|NOT NULL]

主キーを変更する場合

ALTER TABLE table_name  
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)