LoginSignup
6
9

More than 3 years have passed since last update.

SQL Server の良く使うSQLまとめ

Last updated at Posted at 2018-08-22

特定のキーワードを含むプロシージャを探す

特定のキーワードを含むプロシージャやファンクションを探したい時は以下のSQLで探せます。


SELECT t2.type, t2.name, t1.definition
  FROM sys.sql_modules AS t1
  JOIN sys.objects AS t2 ON t1.object_id = t2.object_id
 WHERE t1.definition LIKE '%キーワード%'
 ORDER BY t2.type, t2.name;

特定のカラムを含むテーブルを探す

特定のカラムを含むテーブルを探したい時は以下のSQLで探せます。


SELECT t1.name AS TableName, t2.name AS ColumnName
  FROM sys.tables AS t1
  JOIN sys.columns AS t2 ON t1.object_id = t2.object_id
 WHERE t2.name LIKE '%カラム名%'

現在実行中のSQLを確認する


SELECT
    r.session_id,
    r.start_time,
    TotalElapsedTime_ms = r.total_elapsed_time,
    r.[status],
    r.command,
    DatabaseName = DB_Name(r.database_id),
    r.wait_type,
    r.last_wait_type,
    r.wait_resource,
    r.cpu_time,
    r.reads,
    r.writes,
    r.logical_reads,
    t.[text] AS [executing batch]
FROM
    sys.dm_exec_requests r
CROSS APPLY
    sys.dm_exec_sql_text(r.sql_handle) AS t
ORDER BY
    r.total_elapsed_time DESC;

ロック状況を確認する

SELECT
    resource_type AS type,
    resource_associated_entity_id as entity_id,
    ( CASE 
        WHEN resource_type = 'OBJECT' THEN OBJECT_NAME( resource_associated_entity_id )
        ELSE
          ( SELECT OBJECT_NAME( OBJECT_ID )
              FROM sys.partitions
             WHERE hobt_id=resource_associated_entity_id )
     END) AS object_name,
    request_mode AS request_mode,
    request_type AS request_type,
    request_status AS request_status,
    request_session_id AS session_id
  FROM sys.dm_tran_locks
 WHERE resource_type <> 'DATABASE'
 ORDER BY request_session_id

セッション情報を確認する

SELECT * FROM sys.dm_exec_sessions

0除算エラーを回避する

SELECT で除算をする場合に、0除算エラーを回避するにはNULLIFを使用します。


SELECT t1.profit / NULLIF(t1.sales, 0) * 100 AS grossProfitRatio
  FROM Sales AS t1

プロシージャやファンクションの更新時間を確認する

SELECT name, create_date, modify_date
  FROM sys.objects
 WHERE type = '名前'
 ORDER BY name;
6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9