DECLARE @temp AS TABLE (id INT NOT NULL PRIMARY KEY CLUSTERED, name VARCHAR(10))
BEGIN TRY
declare @Source table (id int not null, name varchar(10))
insert @Source
SELECT 11,'ABC' union all
SELECT 12,'CDE' union all
SELECT 13,'FGH' union all
SELECT 11,'IJK'
INSERT INTO @temp
SELECT * from @Source
SELECT * FROM @temp
END TRY
BEGIN CATCH
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Profile Name',
@recipients = '[email protected]',
@body = Error_Message,
@subject = Error_Message ;
END CATCH;
GO
這是我的代碼工作正常..但我想在郵件中包含的ID是導致錯誤作爲提醒某些電子郵件ID在這種情況下,它是「11」。 我如何以一些聰明的方式做到這一點..?確定在TSQL中引起約束違反的值/列?
基本上..有可以在它返回的列和數據的任何方法哪些錯誤信息? –
Whar是你的'@@ version'?在2008年(SP3),錯誤消息包含違規值。 '違反PRIMARY KEY約束'PK __#0BC6C43__3213E83F0DAF0CB0'。無法在對象'dbo。@ temp'中插入重複鍵。重複鍵值是(11)。「 –
Microsoft SQL Server 2008 R2(RTM) - 10.50.1617.0(Intel X86)Apr 22 2011 11:57:00 Copyright(c)Windows NT 6.1上的Microsoft Corporation企業版(Build 7601:Service Pack 1) –