巧借SYNONYM讓SQL Server在用戶自定義函數(shù)中使用臨時(shí)表
我們知道,SQL Server在用戶自定義函數(shù)UDF使用臨時(shí)表,這是不允許的。但是有時(shí)是為了某些特殊的場(chǎng)景,我們可以采用以下的方式來(lái)實(shí)現(xiàn)。
在查詢分析器中執(zhí)行下面的代碼:
- CREATE TABLE #temp (id INT)
- GO
- INSERT INTO #temp VALUES (1),(2),(3)
- GO
- CREATE SYNONYM temp_table_synonym FOR #temp
- GO
- CREATE FUNCTION fn_select_temp_table ()
- RETURNS TABLE
- AS
- RETURN
- (
- SELECT * FROM temp_table_synonym
- )
- GO
- SELECT * FROM fn_select_temp_table()
- GO
在上面的代碼中我們使用了SYNONYM,這是關(guān)鍵之處。但實(shí)際過(guò)程中是不推薦這種做法. 這也可能是SQL SERVER另一個(gè)BUG吧。
關(guān)于SQL Server利用SYNONYM在用戶自定義函數(shù)中使用臨時(shí)表的操作就介紹到這里,如果您想了解更多關(guān)于SQL Server數(shù)據(jù)庫(kù)的知識(shí),可以看一下這里的文章:http://database.51cto.com/sqlserver/,您的收獲就是對(duì)我們工作的***肯定!
【編輯推薦】