目次
INDEX
インデックス関連
インデックス(nonclustered)の作成
CREATE INDEX <インデックス名> ON <テーブル名> (<列>);
clusteredなインデックスの作成
CREATE CLUSTERED INDEX <インデックス名> ON <データベース名>.<スキーマ名>.<テーブル名> (<列>);
CLUSTERED
を付けるとクラスタードなインデックスを作成できます。テーブル名の部分はデータベース・スキーマ名・テーブル名の3パート指定もできます。
ユニークインデックス(nonclustered)の作成
CREATE UNIQUE INDEX <インデックス名> ON <テーブル名> (<列1> DESC, <列2> ASC, <列3> DESC);
参考
LOGIN
ログイン関連のメモです。
ログイン情報の作成
CREATE LOGIN ログインID WITH PASSWORD = 'パスワード', DEFAULT_DATABASE = データベース名, CHECK_EXPIRATION = OFF, -- 有効期限チェックしない CHECK_POLICY = OFF -- パスワードの複雑性要件をチェックしない GO
参考
USER
ユーザー関連のメモです。
データベースユーザー作成
データベースにログイン情報と一致するユーザーを作成します。
ユーザー情報の作成(ログイン情報と一致するユーザー)
USE 「データベース] GO CREATE USER ログインID GO
データベースにログイン情報と一致しないユーザーを作る場合は以下のようにFOR LOGIN
を追加します。
ユーザー情報の作成(ログインIDを指定)
USE 「データベース] GO CREATE USER ログインID FOR LOGIN [ログインID] GO
ロール割り当て
ロールを割り当てます。
ロールを割り当て
USE [データベース] GO EXEC sp_addrolemember 'db_owner', 'ログインID' GO
パスワード変更
パスワードを変更します。
パスワードを変更
ALTER LOGIN ログインID WITH PASSWORD = '新パスワード' GO
参考
列追加
テーブルへ列を追加するALTER文です。
構文
ALTER TABLE <テーブル名> ADD <カラム名> <型定義...>;
例
以下はUser
テーブルにScore
という名前の列(INT型で、NOT NULLでデフォルト値は0)を追加する例。
列、Scoreの追加
ALTER TABLE dbo.[User] ADD Score INT NOT NULL DEFAULT 0;
参考
列変更
テーブルの列を変更するALTER文です。
構文
ALTER TABLE <テーブル名> ALTER COLUMN <変更する列名> <データ型>;
例
以下はUser
テーブルのScore
という名前の列をINT型で、NOT NULLでデフォルト値は0に変更する例。
列、Scoreの変更
ALTER TABLE dbo.[User] ALTER COLUMN Score INT NOT NULL DEFAULT 0;
参考
列削除
テーブルから列を削除するALTER文です。
構文
ALTER TABLE <テーブル名> DROP COLUMN <カラム名>;
例
以下SQLを実行すると、M_USER
テーブルのEMAIL_ADDRESS
というカラムが削除されます。
列、EMAIL_ADDRESSを削除
ALTER TABLE M_USER DROP COLUMN EMAIL_ADDRESS;
注意事項
- テーブルから列を削除すると、列および列に含まれているすべてのデータが削除されます。
- CHECK制約がある列を削除することはできません。最初に制約を削除する必要があります。
参考
スキーマ
スキーマ関係のALTER文です。
構文
ALTER SCHEMA <変更前のスキーマ名> TRANSFER <変更後のスキーマ名>.<テーブル名>;
例
以下SQLを実行すると、M_USER
のスキーマをdbo
からnewschema
に変更します。
スキーマ、dboをnewschemaに変更
ALTER SCHEMA dbo TRANSFER newschema.M_USER;