Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 r2 将存储的Produre结果保存为文件_Sql Server 2008 R2_Silverlight 5.0 - Fatal编程技术网

Sql server 2008 r2 将存储的Produre结果保存为文件

Sql server 2008 r2 将存储的Produre结果保存为文件,sql-server-2008-r2,silverlight-5.0,Sql Server 2008 R2,Silverlight 5.0,我有一个存储过程,在proc打印中某些结果如下 Print '-- Start Transection--' Print 'Transection No = ' + @TransectionId ... ... Print 'Transection Success' Print '-- End Transection--' 从UI调用打印结果时,是否可以将打印结果保存在文件中。之后,我们必须将该文件邮寄给用户,并要求下载该文件。该文件打印用于日志记录和调试目的,不应用于向调用者返回任

我有一个存储过程,在proc打印中某些结果如下

Print '-- Start Transection--'
Print 'Transection No = ' + @TransectionId     
...
...
Print 'Transection Success'
Print '-- End Transection--'

从UI调用打印结果时,是否可以将打印结果保存在文件中。之后,我们必须将该文件邮寄给用户,并要求下载该文件。该文件打印用于日志记录和调试目的,不应用于向调用者返回任何内容

这里有一个建议:不要打印,而是写入日志表并返回loggingID。然后,从应用程序中查询此表并写入文件

示例:创建两个表

CREATE TABLE Logging
(
    LoggingID int IDENTITY(1,1) PRIMARY KEY,
    Created datetime    
)

CREATE TABLE LoggingDetail
(
    LoggingDetailID int IDENTITY(1,1) PRIMARY KEY,
    LoggingID int FOREIGN KEY REFERENCES Logging,
    LoggingText varchar(500)
)
在事务开始时,创建新的loggingID:

INSERT INTO Logging (Created) VALUES (GETUTCDATE())
DECLARE @loggingID INT = @@IDENTITY
不要打印日志消息,而是执行以下操作

INSERT INTO LoggingDetail (LoggingID, LoggingText) VALUES (@loggingID,
'-- Start Transection--')
在存储过程结束时,将@loggingID返回给调用方。现在,您可以从LoggingDetail表中检索日志消息并将其写入文件:

SELECT LoggingText FROM LoggingDetail WHERE LoggingID=<loggingID> ORDER BY LoggingDetailID
从LoggingDetail中选择LoggingText,其中LoggingID=按LoggingDetailID排序
将插件封装在单独的存储过程中可能是个好主意。然后,这些存储过程可以写入日志表并打印日志消息