若需要動態在 SQL Server 上組 SQL 語句,則必須宣告字串型態的變數 (variable) 供暫存:
DECLARE @query varchar(200) SET @query = 'SELECT id, mail from user where id in (....)
但若無法預測 where in
語句就很難做變數宣告。
好險 SQL Server 有 reserve word 可以直接使用當下執行環境中的最大值:MAX
,所以在無法預測字串長度的狀況下,可以將宣告改寫成:
DECLARE @query varchar(MAX)
按照 SQL Server 官方文件的說明,使用 MAX
的話,字串長度可以到 2^31-1
,因此也必須小心使用,以免把機器給燒了。