我们知道,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/,您的收获就是对我们工作的***肯定!
【编辑推荐】