0
我有這個UDF,它需要從GUI中收集一些參數。用函數返回值參數調用存儲過程ADO.NET
CREATE FUNCTION [dbo].[fnCreateAppoitmentXML] (@PacientID int
, @DataProgramare datetime2(7)
, @PacientNume varchar(50)
, @PacientEmail varchar(100)
, @PacientTelefon varchar(50)
, @PacientSimptome varchar(100))
RETURNS xml
AS
BEGIN
RETURN (SELECT (SELECT
@PacientId AS PacientId,
@DataProgramare AS DataProgramare,
@PacientNume AS PacientNume,
@PacientEmail AS PacientEmail,
@PacientTelefon AS PacientTelefon,
@PacientSimptome AS PacientSimptome
FOR
xml PATH ('PacientDate'),
TYPE)
FOR xml PATH (''),
ROOT ('root'))
END
從MVC 5項目,我需要下面的SP,其採用XML作爲參數(函數的返回類型)
@xmldoc xml
AS
BEGIN
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO [dbo].[ProgramareMF] (PacientID, DataProgramare, PacientNume, PacientEmail, PacientTelefon, PacientSimptome)
(SELECT
xmldoc.i.value('./PacientId[1]', 'int'),
xmldoc.i.value('./DataProgramare[1]', 'datetime2(7)'),
xmldoc.i.value('./PacientNume[1]', 'varchar(100)'),
xmldoc.i.value('./PacientEmail[1]', 'varchar(100)'),
xmldoc.i.value('./PacientTelefon[1]', 'varchar(100)'),
xmldoc.i.value('./PacientSimptome[1]', 'varchar(100)')
FROM @xmldoc.nodes('/root/PacientDate') AS xmldoc (i))
COMMIT TRAN;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN;
THROW;
END CATCH;
END
我的第一個問題是,我可以在.NET跑了SP調用並以UDF返回值作爲參數提供給它。如果這是可能的,我應該將函數的返回值存儲到一個變量中,或者直接提供帶有UDF的SP作爲參數?
我需要使用XML,這些是規格...將做一些頭腦風暴,並附帶一些信息,謝謝 –