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

名前が有効な識別子ではないため、execが失敗しましたか?

    最後に代わりにこれを試してください:

    exec (@query)
    

    角かっこがない場合、SQLServerは変数の値をストアドプロシージャ名と見なします。

    または

    EXECUTE sp_executesql @query
    

    また、完全な結合が原因ではないはずです。
    ただし、この前に、#TrafficFinal、#TrafficFinal2、#TrafficFinal3の一時テーブルを既に作成していることを願っています。

    EXECとsp_executesqlの使用にはパフォーマンス上の考慮事項があることに注意してください。 sp_executesqlはspのように強制ステートメントキャッシュを使用するためです。
    詳細ここ 。

    別の注意点として、クエリ操作を行っておらず、そのまま実行していることを考慮して、クエリをそのまま使用できる場合に、この場合に動的SQLを使用する理由はありますか?



    1. SELECT * FROM TABLE(パイプライン関数):結果の行の順序を確認できますか?

    2. SQL Server(T-SQL)の各パーティションの行数を返す3つの方法

    3. pgAdminを介してPostgreSQLでリレーションシップリンクを作成する

    4. 最終日で結合されたSQL