2012-04-08 68 views
2

SQL专家,Messagefile参数的SQL Server2005分之2000

我使用SQL Server的messagefile参数2000 xp_smtp_sendmail程序来使用外部文本文件按我的邮件的机构。我们最近迁移到SQL Server 2005,并且此参数在sp_send_dbmail中不存在。

有没有简单的方法可以在SQL Server 2005中做同样的事情。

谢谢!

回答

1

sp_send_dbmail中没有消息文件。

我一直在阅读一些关于这个主题的文章,我对你有一些选择。用CLR function to Read and Write Text Files获取文件,然后将返回放入邮件正文中。然后是这样的:

DECLARE @text VARCHAR(MAX) 
EXEC @text=ReadTextFile 'C:\YourFile.txt' 

EXEC msdb.dbo.sp_send_dbmail 
@profile_name = 'something', 
@recipients = '[email protected]', 
@body = @text, 
@subject = 'Hello my friend' ; 

或者你可以使用OPENROWSET和一个varchar加载该文件(详细信息here):

DECLARE @LotsOfText VARCHAR(MAX) 
SELECT @LotsOfText = BulkColumn 
FROM OPENROWSET(BULK 'C:\YourFile.txt', SINGLE_BLOB) AS x 

EXEC msdb.dbo.sp_send_dbmail 
@profile_name = 'something', 
@recipients = '[email protected]', 
@body = @LotsOfText, 
@subject = 'Hello my friend' ; 

The TSQL of Text Files是在SQL读取文件一个很好的参考。

我希望这会有所帮助

+0

Arion,我用OPENROWSET替代方案,我可以说它工作顺利。我甚至可以通过用SINGLE_CLOB替换SINGLE_BLOB来导入'htm'文件。我的电子邮件正文现在加载了我想要的内容。太棒了......并再次感谢! – user1320877 2012-04-11 10:29:59

+0

没问题。很高兴帮助..也许你可以接受答案,然后记住要认真回答你认为是好的答案。这给了我们一种温暖的模糊感觉:P – Arion 2012-04-11 10:33:06