我一直花費大量時間研究一種方法來適應sql查詢,而在一個循環中爲了從多個表中取回數據。在適當的循環中調整SQL查詢
我遇到的一種方法使得這可能會將查詢作爲加載字符串執行,然後您可以在每次循環運行時調整查詢(如通過此鏈接所解釋的:https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql)。
更具體地說,我試圖運行一個相當大的查詢,它通過多個數據庫循環 - 但是每個數據庫都有一個分支號,比如A,B,C,D,E等。我執行查詢我正在使用連接去從A所需的所有數據庫。爲了使這項工作,我需要複製並粘貼這整個500行查詢,超過5次,以涵蓋每個分支。
的方法使用加載鏈將結束是與此類似:
DECLARE process varchar(max) = 'select * from Vis_' + Branch[i] + '_Quotes' exec(process)
是否有更好的方法來適應,而其運行的查詢搜索?
mysql!= sql-server,請不要標記不涉及的產品。你爲什麼認爲「varchar max limit可能會被超過」?你認爲限制是什麼? – HoneyBadger
你知道varchar(max)中的限制大概是在一個單元格中的2GB數據? –
不知道這是否有用:'EXECUTE master.sys.sp_MSforeachdb' details here:http://weblogs.sqlteam.com/joew/archive/2008/08/27/60700.aspx,可能不像你希望每次都適應查詢,但是這可以讓您在服務器上的每個數據庫上運行相同的查詢 – Tanner