【问题标题】:UDF - Return a table from a custom sql string execution with "Exec 'select * from ....' "UDF - 使用“Exec 'select * from ....'”从自定义 sql 字符串执行中返回一个表
【发布时间】:2009-10-20 12:43:16
【问题描述】:

如何从执行自定义查询字符串的 UDF 返回表?例如:


CREATE FUNCTION fx_AdvancedSearch
(
@keywords varchar(255), (..... other params ....) ) RETURNS TABLE AS BEGIN DECLARE @SqlQuery varchar(1000) ..... SET @SqlQuery = 'my custom select string previously generated' EXEC(@SqlQuery)

结束

我在想也许我可以在内存表中创建一个临时表然后返回它,但我不想为此在服务器中分配额外的内存。

而且...我应该使用 SP 还是 UDF 来实现这个目标?我在 SP 中运行了它,但 Linq2SQL 无法确定返回类型,因此我无法在我的 .NET 代码中正确使用此函数。

谢谢! TT

【问题讨论】:

  • 您希望在表中返回多少数据?

标签: sql-server linq-to-sql tsql user-defined-functions


【解决方案1】:

Erland 记录了许多不同的方法来实现这一点(但不是使用函数,正如其他人已经指出的那样),请参阅:http://sommarskog.se/share_data.html ... 可能还需要阅读他的两篇动态 SQL 文章。

【讨论】:

    【解决方案2】:

    我很确定您不能在函数中使用动态 sql。

    【讨论】:

    • 是的,这是真的……可能必须使用存储过程。
    • 感谢大家的投入。阅读 Aaron 建议的文章有助于澄清。向所有人问好。
    猜你喜欢
    • 2010-10-27
    • 2013-02-18
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多