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

OBJECTPROPERTY()を使用して、オブジェクトがSQLServerのビューであるかどうかを判断します

    OBJECTPROPERTY()を使用できます SQL Serverの関数を使用して、オブジェクトがビューであるかどうかを確認します。

    この関数は、オブジェクトIDと、それをチェックするプロパティの2つのパラメータを受け入れます。

    したがって、最初の引数としてオブジェクトIDを渡すことができ、IsView 2番目として、関数は1のいずれかを返します または0 ビューかどうかによって異なります。

    1の戻り値 であることを意味します ビュー、および0の値 そうではないことを意味します。

    例1-基本的な使用法

    簡単な例を次に示します。

    USE Music;
    SELECT OBJECTPROPERTY(1525580473, 'IsView') AS [IsView];
    

    結果:

    +----------+
    | IsView   |
    |----------|
    | 1        |
    +----------+
    

    この場合、音楽 データベースには、提供されたIDを持つオブジェクトがあり、それはビューです。

    例2–オブジェクトIDの取得

    オブジェクトの名前はわかっているがIDはわかっていない場合は、OBJECT_ID()を使用できます。 名前に基づいてIDを取得する関数。

    例:

    SELECT OBJECTPROPERTY(OBJECT_ID('RockAlbums'), 'IsView') AS [IsView];
    

    結果:

    +----------+
    | IsView   |
    |----------|
    | 1        |
    +----------+
    

    この場合、前の例と同じオブジェクトをチェックしました。

    ここでも、IDが個別に出力されます。

    SELECT 
      OBJECT_ID('RockAlbums') AS [Object ID],
      OBJECTPROPERTY(OBJECT_ID('RockAlbums'), 'IsView') AS [IsView];
    

    結果:

    +-------------+----------+
    | Object ID   | IsView   |
    |-------------+----------|
    | 1525580473  | 1        |
    +-------------+----------+
    

    例3–オブジェクトがビューではない場合

    オブジェクトがビューでない場合は、次のようになります。

    SELECT OBJECTPROPERTY(885578193, 'IsView') AS [IsView];
    

    結果:

    +----------+
    | IsView   |
    |----------|
    | 0        |
    +----------+
    

    この場合、データベースはします 実際にはそのIDのオブジェクトがありますが、オブジェクトは実際にはテーブルであるため、否定的な結果が得られます。

    ここでもOBJECT_ID()を使用しています 。

    SELECT 
      OBJECT_ID('Artists') AS [Object ID],
      OBJECTPROPERTY(OBJECT_ID('Artists'), 'IsView') AS [IsView];
    

    結果:

    +-------------+----------+
    | Object ID   | IsView   |
    |-------------+----------|
    | 885578193   | 0        |
    +-------------+----------+
    

    例4–オブジェクトが存在しない

    SQL Serverは、オブジェクトIDが現在のデータベースコンテキストにあると想定します。別のデータベースからオブジェクトIDを渡すと、NULLの結果が得られるか、誤った結果が得られます。

    SELECT 
      OBJECTPROPERTY(OBJECT_ID('NonExistentObject'), 'IsView') AS [NonExistentObject],
      OBJECTPROPERTY(11111111, 'IsView') AS [11111111];
    

    結果:

    +---------------------+------------+
    | NonExistentObject   | 11111111   |
    |---------------------+------------|
    | NULL                | NULL       |
    +---------------------+------------+
    

    この場合、データベースにはその名前またはIDのオブジェクトが含まれていないため、結果はNULLになります。

    エラーが発生した場合、またはオブジェクトを表示する権限がない場合にもNULLが発生します。


    1. 型変換。 CのlibpqのPostgreSQLOID値をどうすればよいですか?

    2. SQLServerの特定のテーブルを参照するすべての外部キーを返す

    3. MySQLと同等の事前接続で接続

    4. SQLServerでDMLトリガーを作成する