sql >> データベース >  >> RDS >> Sqlserver

DB_ID()を使用して、SQLServerのデータベースのIDを返します

    SQL Serverでは、DB_ID()を使用できます 現在のデータベースまたは別の指定されたデータベースのIDを返す関数。

    それが機能する方法は、データベースの名前を引数として渡すと、関数はそのデータベースのIDを返します。名前を渡さないと、現在のデータベースのIDが返されます。

    例1-現在のデータベースを返す

    現在のデータベースの名前を返す方法を示す基本的な例を次に示します。

    SELECT DB_ID() AS [Current Database];
    

    結果:

    +--------------------+
    | Current Database   |
    |--------------------|
    | 6                  |
    +--------------------+
    

    この場合、現在のデータベースのIDは6です。

    データベースを切り替えることで、それをさらに実証する別の例を次に示します。

    USE Music;
    SELECT DB_ID() AS [Current Database];
    
    USE EMS;
    SELECT DB_ID() AS [Current Database];
    
    USE WideWorldImportersDW;
    SELECT DB_ID() AS [Current Database];
    

    結果:

    Changed database context to 'Music'.
    +--------------------+
    | Current Database   |
    |--------------------|
    | 5                  |
    +--------------------+
    (1 row affected)
    Changed database context to 'EMS'.
    +--------------------+
    | Current Database   |
    |--------------------|
    | 14                 |
    +--------------------+
    (1 row affected)
    Changed database context to 'WideWorldImportersDW'.
    +--------------------+
    | Current Database   |
    |--------------------|
    | 6                  |
    +--------------------+
    (1 row affected)
    

    例2–特定のデータベースを返す

    特定のデータベースを返す例を次に示します。これは、データベースの名前を渡すことによって行われます。

    SELECT DB_ID('Music') AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | 5        |
    +----------+
    

    詳細はこちら:

    SELECT 
      DB_ID('master') AS [master],
      DB_ID('tempdb') AS [tempdb],
      DB_ID('model') AS [model],
      DB_ID('msdb') AS [msdb],
      DB_ID('Music') AS [Music],
      DB_ID('WideWorldImportersDW') AS ['WideWorldImportersDW'];
    

    結果:

    +----------+----------+---------+--------+---------+--------------------------+
    | master   | tempdb   | model   | msdb   | Music   | 'WideWorldImportersDW'   |
    |----------+----------+---------+--------+---------+--------------------------|
    | 1        | 2        | 3       | 4      | 5       | 6                        |
    +----------+----------+---------+--------+---------+--------------------------+
    

    例3–データベースクエリ

    DB_ID()の例を次に示します。 重宝するかもしれません。

    USE WideWorldImportersDW;
    SELECT
      name AS [Foreign Key],
      OBJECT_NAME(parent_object_id, DB_ID('Music')) AS [Parent Object Name],
      OBJECT_NAME(referenced_object_id, DB_ID('Music')) AS [Referenced Object Name]
    FROM Music.sys.foreign_keys
    WHERE name = 'FK_Artists_Country';
    

    結果:

    Changed database context to 'WideWorldImportersDW'.
    +--------------------+----------------------+--------------------------+
    | Foreign Key        | Parent Object Name   | Referenced Object Name   |
    |--------------------+----------------------+--------------------------|
    | FK_Artists_Country | Artists              | Country                  |
    +--------------------+----------------------+--------------------------+
    (1 row affected)
    

    この例では、現在のデータベースはWideWorldImportersDWですが、Musicデータベースの外部キーに関する情報が必要です。 OBJECT_NAME() 関数はIDに基づいてオブジェクト名を返しますが、オブジェクトが別のデータベースにある場合は、データベースIDを指定することもできます。ただし、この場合、私はデータベース名しか知りません。 DB_ID()を使用できるので、問題ありません。 名前に基づいてIDを返します。


    1. SQL結合の究極のガイド:内部結合–パート1

    2. maven-assembly-pluginに必要なドライバーを含めると、適切なドライバーが見つかりません

    3. MySQLルートパスワードをリセットする方法

    4. GroovySQLOracle配列関数/プロシージャアウトパラメータの登録