2012-11-23 16 views

答えて

30

MS SQLの場合

ALTER TABLE table_name MODIFY column_name VARCHAR(X)

+0

あなたの超高速応答のためにたくさんありがとう:) – user1768076

4

確かにはい:MySQLの

ALTER TABLE table_name 
MODIFY column_name datatype(value) 
+1

P "datatype(value)"はソースタイプではなくターゲットタイプですか? – ArtB

+0

正直、これについて少しはっきりしていたはずです。 –

0

については

ALTER TABLE table_name 
ALTER COLUMN column_name datatype(value) 

私はDBの質量変化のためにこれを使用していました。実行し、すべての行をコピーし、クエリフィールドに貼り付け、ヘッダーを削除して実行します。

変更ENGINE、CHARSETとDB内のすべてのテーブルのCOLLATION = itsd:VARCHARにすべてのテキストフィールド

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," CONVERT TO 
CHARACTER SET utf8;") AS ExecuteTheString 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA="itsd" 
    AND TABLE_TYPE="BASE TABLE"; 

変更:

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," ENGINE=INNODB, 
CHARSET=utf8, COLLATE=utf8_general_ci;") AS ExecuteTheString 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA="itsd" 
    AND TABLE_TYPE="BASE TABLE"; 

はCHARSETとDB内のすべてのテーブルのCOLLATION = itsdを変換します(255)DB内のすべてのテーブルの:

SELECT CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' MODIFY COLUMN ', 
column_name, ' VARCHAR(255);') 
FROM information_schema.columns 
WHERE TABLE_SCHEMA = 'itsd' 
    AND DATA_TYPE = 'text' 
    AND TABLE_TYPE="BASE TABLE"; 
関連する問題