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

ストアド プロシージャで動的 SQL から結果を取得する

    次のようなことを試しましたか:

    DECLARE @FiscalYear INT, @DataSource NVARCHAR(25), @SQL NVARCHAR(250);
    SET @DataSource = N'CustomerCosts20120328';
    SET @SQL = N'SELECT DISTINCT @FiscalYear = FiscalYear FROM ' + @DataSource;
    EXEC sp_executesql @SQL, N'@FiscalYear INT OUTPUT', @FiscalYear OUTPUT;
    
    PRINT @FiscalYear;
      

    nvarchar 文字列の前に N を付けるようにしてください。 SELECT @SQL = N'SELECT ... .

    また、クエリが複数の行を返す場合、@FiscalYear に割り当てられる値もわかっています。 完全に恣意的ですよね?そのテーブルから単一の値を期待するかもしれませんが、 MAX() を使用しても害はありません または TOP 1 ... ORDER BY 単一の予測可能な値のみが割り当てられるようにします。



    1. MySQLでのEXISTSの使用

    2. ヘルプ:エラー1025(HY000):名前の変更時にエラーが発生しました....(errno:150)

    3. クロス結合を使用することと、2つのテーブルの間にコンマを入れることの違いは何ですか?

    4. PostgreSQLでは、ハッシュ化されたサブプランはどういう意味ですか?