`
- 浏览:
1132160 次
-
/**//*--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.csdn.net/u/20080103/12/3dafc07c-3376-40c1-b4bd-7cbd76afed1a.html?seed=182508736
--*/
--添加链接服务器
EXECsp_addlinkedserver'srv_lnk','','SQLOLEDB','.'
EXECsp_serveroption'srv_lnk','rpcout','true'
GO
--测试语句
--SETNOCOUNTON
BEGINTRY
DECLARE
@error_numberint,
@error_messagenvarchar(2048)
EXEC(N'
SETNOCOUNTON
USEtempdb
BEGINTRY
DELETEFROM[NEWID()]
ENDTRY
BEGINCATCH
SELECT
?=ERROR_NUMBER(),
?=ERROR_MESSAGE()
ENDCATCH
',
@error_numberOUTPUT,
@error_messageOUTPUT
)ATsrv_lnk
ENDTRY
BEGINCATCH
SELECT
2,
ERROR_NUMBER(),
ERROR_MESSAGE()
ENDCATCH
GO
--删除链接服务器
EXECsp_dropserver'srv_lnk','droplogins'
GO
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
一些简单的SQL面试题,仅供大家参考 管理结果集的分页 问:我怎样才能使用SQL Server对结果集的分页进行管理? 答:您经常需要使用一次一页的形式来显示一个结果集,并保证用户可以轻松查看各个...SET NOCOUNT OFF
SQL SERVER 2008 开发系列,分15个课时介绍了我们在日常使用SQLServer过程中需要注意的问题和一些应用。
建表: 代码如下: set nocount on –当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数 use SY GO if object_Id(‘dbo.Orders’) is not null drop ...
-- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; CREATE TABLE [dbo].[ReDealCheck]( [AppplyNo] [varchar](50) COLLATE Chinese_PRC_CI...
1、执行下述代码,查看当前进程执行内容 ...SET NOCOUNT ON SET SHOWPLAN ON SET NOEXEC ON GO 具体代码 GO SET NOCOUNT OFF SET SHOWPLAN OFF SET NOEXEC OFF GO 4、执行计划显示索引使用不合理导致全表扫
SET NOCOUNT ON IF (NOT EXISTS (SELECT P.SSN FROM Person P, inserted I WHERE P.SSN = I.SSN)) INSERT INTO Person SELECT SSN,Name,Address,Birthdate,Comment FROM inserted ELSE INSERT INTO ...
set nocount off --关闭SqlServer消息 --set nocount on --开启SqlServer消息 go create proc usp_getMyStudentsDataByPage --输入参数 @pagesize int=7,--每页记录条数 @pageindex int=1,--当前要查看第几页的记录 ...
这个例子里面我们从两个表中取出头两行,然后合并到一个表中。 在现实中我们常常会遇到这样的情况,... SET NOCOUNT ON --指示存储过程不返回查询影响的行数 DECLARE @col1c varchar(20),@col2c varchar(20), @inde
SET NOCOUNT ON DECLARE @STMT nvarchar(max) -- SQL to execute ,@recct int -- total # of records (for GridView paging interface) IF LTRIM(RTRIM(@filter)) = '' SET @filter = '1 = 1' IF @pageSize IS ...
SET NOCOUNT ON GO USE master GO if exists (select * from sysdatabases where name='Northwind') drop database Northwind go DECLARE @device_directory NVARCHAR(520) SELECT @device_directory = ...
CREATE PROCEDURE [dbo] [sys viewTableSpace] AS BEGIN SET NOCOUNT ON; CREATE TABLE [dbo] #tableinfo 表名 [varchar] 50 COLLATE Chinese PRC CI AS NULL 记录数 [int] NULL
SET NOCOUNT ON DECLARE @d varchar(8) DECLARE @Backup_Flag NVARCHAR(10) SET @d=convert(varchar(8),getdate(),112) /***自定义选择备份哪些数据库****/ --SET @Backup_Flag='UserDB' -- 所用的用户数据库 SET @...
是用与SQL Server 2005 set nocount on USE master declare @dttm varchar(55) select @dttm=convert(varchar,getdate(),113) raiserror('Starting installation of HR Database at %s ....',1,1,@dttm) with nowait
inserted,deleted是在触发器中使用的两个临时表... 代码如下:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER TRIGGER [dnt_user_add] ON [dbo].[dnt_users] AFTER INSERT AS BEGIN SET NOCOUNT ON; insert into
百万级的分页存储过程 CREATE PROCEDURE sp_paging @sqlstr NVARCHAR(4000), --查询字符串 @currentpage INT, --第N页>=1 @pagesize INT --每页行数 ...SET NOCOUNT ON declare @P1 INT, --P1是游标的id
使用联接来查询多个表 SET NOCOUNT { ON | OFF } 说明 用sp_lock诊断SQL Sever的性能问题 sql server临时表 如何保存数据库连接参数代码及步骤详解 用数据源访问数据库 GDI+ 在Delphi程序的...
代码如下: USE Demo GO /* 将表Code的列String中的值提取放到...split_Code GO CREATE PROC proc_split_Code AS BEGIN SET NOCOUNT ON DECLARE @Count INT –条数 DECLARE @Index INT –变量 SET @Index = 1 –默认 SEL
代码如下: ALTER PROCEDURE [dbo].[COMMON_PROCEDURE_SelectWithPage] @Sql VARCHAR(5000), @CurrentPageNo INT, @PageSize INT, @TotalNum INT OUTPUT AS SET NOCOUNT ON DECLARE @SqlCmd VARCHAR(5000) ————...
=================分页========================== 代码如下: /*分页查找数据*/ CREATE PROCEDURE [dbo...AS set nocount on declare @p1 int declare @currentPage int set @currentPage = 0 declare @RowCount int se
SET NOCOUNT ON; GO INSERT INTO dbo.T1 DEFAULT VALUES; GO 100 总结 以上所述是小编给大家介绍的SqlServer GO命令循环使用实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。...