ホームページ >データベース >mysql チュートリアル >SQL クエリで動的テーブル名を使用するにはどうすればよいですか?
SQL の動的テーブル名
変数 (@tablename など) を使用してテーブル名を動的に設定しようとすると、テーブル変数を宣言する必要があるというエラーが発生する場合があります。これは、静的クエリ (テーブル名と列名を含む) は静的でなければならないためです。
この問題を解決するには、動的 SQL テクノロジーの使用を検討してください。これには、完全な SQL ステートメントを動的に生成し、sp_executesql を使用してそれを実行することが含まれます。例:
<code class="language-sql">declare @schema sysname; declare @table sysname; declare @query nvarchar(max); set @schema = 'dbo'; set @table = 'ACTY'; set @query = ' SELECT * FROM [DB_ONE].' + QUOTENAME(@schema) + '.' + QUOTENAME(@table) + ' EXCEPT SELECT * FROM [DB_TWO].' + QUOTENAME(@schema) + '.' + QUOTENAME(@table); EXEC sp_executesql @query;</code>
この例では、テーブル名が動的プレースホルダーに置き換えられ、完全な SQL ステートメントが生成されます。次に、sp_executesql はこの動的クエリを実行し、実行時にテーブル名を解決します。
動的 SQL を使用すると柔軟性が得られますが、細部への注意と適切なメンテナンス手段が必要です。包括的なガイドについては、「動的 SQL の長所と短所」を参照してください。
以上がSQL クエリで動的テーブル名を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。