/**//*--SETNOCOUNT的问题SQL版本:SQLServer20053159故障描述:当满足下述条件时,SETNOCOUNT导致TRY...CATCH无法正确处理错误1.使用EXEC(<SQl>)AT<LinkedServer>或者EXEC<LinkedServer>.<databasename>.dbo.sp_executesql<SQl>2.<SQL>中包括输出参数3.<SQL>中包括SETNOCOUNTON和USE<DatabaseName>语句(注意不能更换出现次序)具体的参考下面的测试示例与此问题相关的帖子:http://topic.youkuaiyun.com/u/20080103/12/3dafc07c-3376-40c1-b4bd-7cbd76afed1a.html?seed=182508736--*/--添加链接服务器EXECsp_addlinkedserver'srv_lnk','','SQLOLEDB','.'EXECsp_serveroption'srv_lnk','rpcout','true'GO--测试语句--SETNOCOUNTONBEGINTRYDECLARE@error_numberint,@error_messagenvarchar(2048)EXEC(N'SETNOCOUNTONUSEtempdbBEGINTRYDELETEFROM[NEWID()]ENDTRYBEGINCATCHSELECT?=ERROR_NUMBER(),?=ERROR_MESSAGE()ENDCATCH',@error_numberOUTPUT,@error_messageOUTPUT)ATsrv_lnkENDTRYBEGINCATCHSELECT2,ERROR_NUMBER(),ERROR_MESSAGE()ENDCATCHGO--删除链接服务器EXECsp_dropserver'srv_lnk','droplogins'GO