Sql server 2008 r2 将存储的Produre结果保存为文件
我有一个存储过程,在proc打印中某些结果如下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调用打印结果时,是否可以将打印结果保存在文件中。之后,我们必须将该文件邮寄给用户,并要求下载该文件。该文件打印用于日志记录和调试目的,不应用于向调用者返回任
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排序
将插件封装在单独的存储过程中可能是个好主意。然后,这些存储过程可以写入日志表并打印日志消息