複数のテーブルから戻すために、ループ中にSQLクエリを適合させる方法を研究するのにかなりの時間を費やしてきました。whileループでSQLクエリを適応させる
これを可能にする方法の1つは、ロード・ストリングとしてクエリを実行することです(このリンクで説明されているように:https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql)。
より具体的には、私は、A、B、C、D、Eなどのように、各データベースにブランチ番号が付いていますが、かなり大きなクエリを実行しようとしています。私はジョインを使用しているクエリを実行して、Aから必要なすべてのデータベースにアクセスします。この作業を行うには、すべてのブランチをカバーするために、この500行のクエリ全体を5回以上コピーして貼り付ける必要があります。
loadStringはを使用する方法は、次のようになってしまうでしょう:
DECLARE process varchar(max) = 'select * from Vis_' + Branch[i] + '_Quotes' exec(process)
は、その実行中にクエリの検索を適応させるためのより良い方法はありますか?
mysql!= sql-server、関連していない製品にタグを付けないでください。なぜあなたは "varchar最大限を超える可能性が高い"と思いますか?限界は何だと思いますか? – HoneyBadger
varchar(max)の制限は、1つのセルで2GB程度のデータしかないことに気付いていますか? –
これが使用されるかどうかわからない: 'EXECUTE master.sys.sp_MSforeachdb'の詳細はこちら:http://weblogs.sqlteam.com/joew/archive/2008/08/27/60700.aspx毎回クエリを適合させたいが、これはサーバ上の各データベースに対して同じクエリを実行することを可能にする – Tanner