- EDIT -
私の質問に答えましたが解決策は です。誰かが 本当の答えを提供できる場合、私はそれらに解決策を与えます。
----印刷がTSQLで警告を生成しないようにする
私は成功せず、ストアドプロシージャで印刷ステートメントを使用したときに警告を生成するからMS SQLを防止するためのソリューションの周りで検索しました。
私はETLアプリケーションからこの手順を実行しており、エラーや警告なしで終了するにはストアドプロシージャが必要です。
FYI - ストアドプロシージャがETLプロセスによって実行されるときに、printステートメントは必要ありません。それらは手動で実行されます。
私はSET ANSI WARNINGSをオフにして試してみましたが、まだ出力上に警告が表示されています。
これはストアドプロシージャです:これは実行結果である
CREATE PROCEDURE [dbo].[spBackupSomeTables]
AS
BEGIN TRY
SET ANSI_WARNINGS OFF
PRINT 'Copying SomeTable1 to Z_Backup_SomeTable1' + CHAR(10)
SET ANSI_WARNINGS ON
TRUNCATE TABLE Z_Backup_SomeTable1
INSERT INTO Z_Backup_SomeTable1
SELECT *
FROM SomeTable1
SET ANSI_WARNINGS OFF
PRINT 'Copying SomeTable2 to Z_Backup_SomeTable2' + CHAR(10)
SET ANSI_WARNINGS ON
TRUNCATE TABLE Z_Backup_SomeTable2
INSERT INTO Z_Backup_SomeTable2
SELECT *
FROM SomeTable2
SET ANSI_WARNINGS OFF
PRINT 'All Done' + CHAR(10)
SET ANSI_WARNINGS ON
END TRY
BEGIN CATCH
DECLARE
@ErrorNumber VARCHAR(1000),
@ErrorSeverity VARCHAR(1000),
@ErrorState VARCHAR(1000),
@ErrorProcedure VARCHAR(1000),
@ErrorLine VARCHAR(1000),
@ErrorMessage VARCHAR(1000)
SET @ErrorNumber = (SELECT ERROR_NUMBER() AS ErrorNumber)
SET @ErrorSeverity = (SELECT ERROR_SEVERITY() AS ErrorSeverity)
SET @ErrorState = (SELECT ERROR_STATE() AS ErrorState)
SET @ErrorProcedure = (SELECT ERROR_PROCEDURE() AS ErrorProcedure)
SET @ErrorLine = (SELECT ERROR_LINE() AS ErrorLine)
SET @ErrorMessage = (SELECT ERROR_MESSAGE() AS ErrorMessage)
PRINT 'ErrorNumber: ' + @ErrorNumber + CHAR(10)
PRINT 'ErrorSeverity: ' + @ErrorSeverity + CHAR(10)
PRINT 'ErrorState: ' + @ErrorState + CHAR(10)
PRINT 'ErrorProcedure: ' + @ErrorProcedure + CHAR(10)
PRINT 'ErrorLine: ' + @ErrorLine + CHAR(10)
PRINT 'ErrorMessage: ' + @ErrorMessage + CHAR(10)
END CATCH
GO
:提案/コメント内のリンクを使用して
Warnings: ---> W (1): Copying SomeTable1 to Z_Backup_SomeTable1 W (2): Copying SomeTable2 to Z_Backup_SomeTable2 W (3): All Done
手動またはETLを使用して実行するときに区別するためのパラメータを追加して、それに応じて 'print'を使用することができます – Lamak
ここでの回答を参照してください:http://stackoverflow.com/questions/3212658/disable-print-in -sql-server – HoneyBadger
「ストアドプロシージャでプリントステートメントを使用しているときにMS SQLが警告を生成しないようにする」に関しては、より具体的にしてください。あなたはどんな警告をしていますか?ストアドプロシージャで 'PRINT'を使用しても警告は生成されません。 –