SQL Server 2005
SQL2005について (ここではExpressEditionについて)
基本情報
- サポート終了期限 2016/04/12 まで 参考
- バージョンの調べ方(2005の場合) http://support.microsoft.com/kb/321185/ja
SELECT @@VERSION SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
- データ型 範囲
bigint -2^63 (-9,223,372,036,854,775,808) ~ 2^63-1 (9,223,372,036,854,775,807) int -2^31 (-2,147,483,648) ~ 2^31-1 (2,147,483,647) smallint -2^15 (-32,768) ~ 2^15-1 (32,767) tinyint 0 ~ 255
- nchar と nvarchar の違い 参考
列データ エントリが類似したサイズになると思われる場合は、nchar を使用します。
列データ エントリのサイズが大幅に異なると思われる場合は、nvarchar を使用します。
設定関係
- 値にNULLを入れる場合には、Ctrl + 0 を押す
- sqlcmdユーティリティ バッチファイルにより、SQLCMDを実行しバックアップを行う(.bakファイル作成)
- 拡張について
自動拡張は有効にする。ログファイルの拡張単位は%ではなくMB指定がよい。%指定の自動拡張中だと大容量の場合には拡張に時間がかかり、拡張中にはログファイルがアクセス不可になりトランザクションができなくなりDB処理が止まるため。ただしMBの指定の範囲はDBの容量の増え方を確認してから、参考
- MDACのバージョン
Win2000Serverのインストール時にMDACのバージョンが必要最低条件に満たないと出た。MDACのバージョンが古いとインストールできないようだ。Xpでは問題なかった。
プログラミング(VB2005関係)
- VB2005からSQLServer2005データベースへの接続の仕方1
(SqlServer2005で既に作成されたデータベースを組み込む場合と,新しい項目の追加で、SQLデータベースを組み込む場合の種類)
- PHP から MS SQL Server へ接続する方法 http://keicode.com/cgi/how-to-connect-to-mssql.php
SQL Server エラー と そのエラーの原因
- 文字列データまたはバイナリ データが切り捨てられます。 ステートメントは終了されました。テーブルの項目の長さよりも長い項目を挿入もくしは更新しようとした。
対策:Insertしたい項目に['] (アポストロフィ)が含まれる場合の対処法
'を重ねる。 例, O'Malley ----> O''Malley 参考
- 何百万レコードのデータをSQL Server Management Studioで削除するとタイムアウトする
対策1:大きなサイズのテーブルを削除しようとするとエラー メッセージ "タイムアウトの時間切れです"
対策2:バックアップを始めにとっておき、必要なデータだけ一時テーブルにコピーする。インデックスなどの情報を設定する。もとのテーブルを削除して、一時テーブルの名前を削除したテーブル名にする。
SQL文
- SQL文のコメント
文字の先頭で -- 、または、 /* */ で囲む
- Group化 参考 グループ化とは、同列内の値の中で、同じ値を持つデータごとに集合化すること
SELECT 顧客コード , 商品コード , MAX(受注個数) FROM 受注表 GROUP BY 顧客コード , 商品コード HAVING MAX(受注個数) >=20;
- サーバーに接続しているユーザーを検索する
次の例では、サーバーに接続しているユーザーを検索し、各ユーザーのセッション数を返します。SELECT login_name ,COUNT(session_id) AS session_count FROM sys.dm_exec_sessions GROUP BY login_name;
- セッション数の確認
SELECT login_name ,session_id FROM sys.dm_exec_sessions
- データベースの一覧取得 参考
Select * From sys.sysdatabases ※ sys.sysdatabases はシステムビュー
- テーブルの一覧取得
Select name from sysobjects
- 今日の日付 CAST および CONVERT
Select convert(varchar(10),current_timestamp,111) 結果 yyyy/mm/dd 2010/05/30 Select convert(varchar(10),current_timestamp,112) 結果 yyyymmdd 20100530 Select convert(varchar(10),current_timestamp,121) 結果 yyyy-mm-dd 2010-05-30
- 現在時刻
Select convert(varchar(10),current_timestamp,108) 結果 hh:mm:ss 05:50:05 Select Replace(convert(varchar(10),current_timestamp,108),':','') 結果 hhmmss 055005
参考 VB2005での日付時刻の表記
- 条件に従って文字列を返す ()の部分は省略できる
Select ID,Name,Sex Case Sex When 1 Then 'Man' When 2 Then 'WoMan' End (as 列名) From Person
読み物
- パフォーマンスを語るために歴史を語ろう
- WebCast
- ADO.NET 関連リソース WebCast有
参考書籍
サイト内リンク
SQL Server系
- バッチファイル
- sqlcmdユーティリティ バッチファイルにより、SQLCMDを実行しバックアップを行う(.bakファイル作成)
DB系
OS系