我试图从使用.NET Entity Framework的应用程序调用master..xp_fixeddrives,所以我需要结果可以解析。我希望调用master..xp_fixeddrives,但对于EF,它必须在视图或存储过程中。
我无法弄清楚创建它的语法。我尝试定义一个视图,并尝试删除select和exec,但没有运气。我怎么能这样做?
create view zzz
as select exec 'master..xp_fixeddrives';
还尝试将其创建为存储过程,但SP实际上并没有返回任何内容,因为它没有select语句。
CREATE PROCEDURE GetHardDriveFreeSpaceInMegabytes
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
EXEC master..xp_fixeddrives
END
GO
简单地调用以下内容无效
select *
from master..xp_fixeddrives
答案 0 :(得分:2)
要从Entity Framework可以使用的存储过程提供列元数据,您可以
CREATE PROCEDURE dbo.GetHardDriveFreeSpaceInMegabytes
AS
BEGIN
SET NOCOUNT ON;
DECLARE @xp_fixeddrives TABLE
(
drive nvarchar(1),
[MB free] int
)
INSERT INTO @xp_fixeddrives
EXEC master..xp_fixeddrives
SELECT *
FROM @xp_fixeddrives
END