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

動的SQLステートメントでテーブル変数を使用する方法は?

    SQL Server 2008以降では、テーブル自体の値を更新する必要がない限り、テーブル値パラメーターを使用してテーブル変数を動的SQLステートメントに渡すことができます。

    したがって、投稿したコードから、このアプローチを@TSkuに使用できます。 ただし、@RelProは対象外です

    以下の構文例。

    CREATE TYPE MyTable AS TABLE 
    ( 
    Foo int,
    Bar int
    );
    GO
    
    
    DECLARE @T AS MyTable;
    
    INSERT INTO @T VALUES (1,2), (2,3)
    
    SELECT *,
            sys.fn_PhysLocFormatter(%%physloc%%) AS [physloc]
    FROM @T
    
    EXEC sp_executesql
      N'SELECT *,
            sys.fn_PhysLocFormatter(%%physloc%%) AS [physloc]
        FROM @T',
      N'@T MyTable READONLY',
      @[email protected] 
    

    physloc 列は、子スコープで参照されるテーブル変数が、コピーではなく外部スコープと確実に同じであることを示すために含まれています。



    1. Access 2016 For Dummies Cheat Sheet

    2. Oracle:シーケンスMySequence.currvalはこのセッションではまだ定義されていません

    3. AndroidでPhoneGap/Cordovaを使用して事前入力されたSQLiteデータベースにアクセスできません

    4. ONUPDATEで次のORA-00907エラーが発生する