このsp_send_dbmail
スクリプトは、私たちのプロセスの1つで動作します。これは、クエリが何であれ、Excelファイルを添付します。これは、ファイル名(.xls)の拡張のためにこれを行うことを知っています。Excelファイルを作成するとき、SQL Server 2014は先行ゼロをオフにします。 。 。しかし。
ただし、varchar(50)
フィールドを数値フィールドに変更し、先頭のゼロを削除します。これは、私のプロセスではうまくいかない何百万もの方法で処理されている既知の迷惑です。以下の問題の
EXEC msdb.dbo.sp_send_dbmail
@profile_name = @profileName
,@recipients = @emailRecipientList
,@subject = @subject
,@importance = @importance
,@body = @emailMsg
,@body_format = 'html'
,@query = @QuerySQL
,@execute_query_database = @QueryDB
,@attach_query_result_as_file = 1
,@query_attachment_filename = @QueryExcelFileName
,@query_result_header = 1
,@query_result_width = @QueryWidth
,@query_result_separator = @QuerySep
,@query_result_no_padding = 1
例:この単純なクエリはExcelの番号にvarchar型からStringNumber列を変更し、ゼロを削除します。 Excelで後
(先行ゼロが欠落している):SQL Serverの(目的の形式)で
SELECT [RowID],[Verbage], StringNumber FROM [dbo].[tblTestStringNumber]
今
、方法があるかもしれません。私は
あなたが右の左上隅にクリックした場合、それは「Excelで開く」のオプションを提供します、なぜならSQL Serverの2016の結果ペインにこれを言うと。 。 。 。ドラムロール 。 。 。データセットはExcelで開き、先頭のゼロはまだそこにあります!
Excellセルが数字の場合は、先頭に0を付けることはできません。 –
最初は数値に似ているものを数値に変更し、2番目はテキスト文字列としてインポートされます。これは列がsqlにあるものです。最初の問題を修正するには、違反している列を '000000'にフォーマットしてください。 –
David:ありがとう、ありがとう。 SQl Serverにはvarcharがあり、Excelはnumberに0を返します。 – JustJohn