嗨我在尝试使用以下功能时遇到了麻烦。
CREATE FUNCTION test ( @nt_group VARCHAR(128) )
RETURNS @nt_usr TABLE (
[name] [nchar](128) NULL
, [type] [char](8) NULL
, [privilege] [char](9) NULL
, [mapped login name] [nchar](128) NULL
, [permission path] [nchar](128) NULL
)
AS BEGIN
INSERT INTO @nt_usr
EXEC master.dbo.xp_logininfo 'DOMAIN\USER', @nt_group
RETURN
END
据我所知,我应该被允许调用扩展存储过程,我得到以下错误
Mes 443,Level 16,State 14
根据参数,xp_logininfo可能会返回不同的结果集吗?当我使用openquery时,我可以通过设置它来解决这个问题:SET FMTONLY OFF。有谁知道我的问题是否有类似的解决方法?
答案 0 :(得分:1)
你不能因为这个xp返回数据。即使您正在加载表格。
基本上,udfs中的xps是非首发的...我会使用存储过程
从函数调用扩展存储过程
扩展存储过程,当它 从函数内部调用, 无法将结果集返回给 客户。返回的任何ODS API 结果集将返回给客户端 失败。扩展存储过程 可以连接回一个实例 SQL Server;但是,它不应该尝试 加入与此相同的交易 调用扩展的函数 存储过程。
与批次或批次的调用类似 存储过程,扩展存储 程序将在。中执行 Windows安全的上下文 SQL Server所在的帐户 运行。存储的所有者 程序应该考虑到这一点 给予EXECUTE权限 用户。