我们知道,SQL Server在用户自定义函数UDF使用临时表,这是不允许的。但是有时是为了某些特殊的场景,我们可以采用以下的方式来实现。
在查询分析器中执行下面的代码:
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,这是关键之处。但实际过程中是不推荐这种做法. 这也可能是SQL SERVER另一个BUG吧。
关于SQL Server利用SYNONYM在用户自定义函数中使用临时表的操作就介绍到这里,假如您想了解更多关于SQL Server数据库的知识,可以看一下这里的文章:http://database.51cto.com/sqlserver/,您的收获就是对我们工作的最大肯定!