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

SQLServerのテーブル値関数を介してデータを挿入する

    SQL Serverでは、テーブル値関数(TVF)を介してデータを挿入できます。

    これは、関数がクエリする基になるテーブルに行を挿入することを意味します。

    TVFを介して新しい行を挿入するには、同じT-SQL INSERTを使用するだけです。 データをテーブルに直接挿入する場合に使用する構文。

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

    機能

    これは、テーブルから基本データを選択するクイック関数です。

    CREATE FUNCTION dbo.udf_Cats_ITVF()
        RETURNS TABLE
    AS
    RETURN (
        SELECT 
            CatId,
            CatName,
            Phone
        FROM dbo.Cats
        );
    GO
    

    この関数は、テーブルからすべての行を選択します。

    この関数を使用して、そのテーブルに新しい行を挿入できます。

    関数でデータを選択

    通常、SELECTを使用して関数を呼び出す方法は次のとおりです。 声明。これにより、基になるテーブルの現在のデータを確認できます。

    SELECT * FROM udf_Cats_ITVF();
    

    結果:

    +---------+-----------+------------+
    | CatId   | CatName   | Phone      |
    |---------+-----------+------------|
    | 1       | Garfield  | 9871237654 |
    | 2       | Felix     | 8871237651 |
    | 3       | Tom       | 7871237652 |
    | 4       | Fetch     | 6871237653 |
    +---------+-----------+------------+
    

    したがって、4つの行があります。

    関数を介して行を挿入

    次に、TVFを使用して新しい行を追加しましょう。

    INSERT INTO udf_Cats_ITVF() 
    VALUES ('Scratchy', '1111111111');
    
    SELECT * FROM udf_Cats_ITVF();
    

    結果:

    +---------+-----------+------------+
    | CatId   | CatName   | Phone      |
    |---------+-----------+------------|
    | 1       | Garfield  | 9871237654 |
    | 2       | Felix     | 8871237651 |
    | 3       | Tom       | 7871237652 |
    | 4       | Fetch     | 6871237653 |
    | 5       | Scratchy  | 1111111111 |
    +---------+-----------+------------+
    

    そこで、インラインのテーブル値関数を使用して新しい猫を挿入することに成功しました。


    1. データの配列を入力パラメータとしてOracleプロシージャに渡す

    2. Access2016でデータベースを手動で圧縮および修復する方法

    3. 別の列から計算された列?

    4. 日付範囲間の日付を生成する