Sql 使用局部变量设置NOCOUNT状态
我试图存储NOCOUNT状态,以便在过程结束时将其返回到原始状态,但它所做的只是在“NOCOUNT”附近给我一个Sql 使用局部变量设置NOCOUNT状态,sql,sql-server,tsql,sql-server-2012-express,Sql,Sql Server,Tsql,Sql Server 2012 Express,我试图存储NOCOUNT状态,以便在过程结束时将其返回到原始状态,但它所做的只是在“NOCOUNT”附近给我一个错误语法。错误 我做错了什么 IF @@OPTIONS & 512 <> 0 /* check original state of NOCOUNT */ PRINT N'This user has SET NOCOUNT turned ON.'; ELSE PRINT N'This user has SET NOCOUNT tur
错误语法。
错误
我做错了什么
IF @@OPTIONS & 512 <> 0 /* check original state of NOCOUNT */
PRINT N'This user has SET NOCOUNT turned ON.';
ELSE
PRINT N'This user has SET NOCOUNT turned OFF.';
DECLARE @NCStat bit
SET @NCStat = ( @@OPTIONS & 512 ) /* sets @NCStat to original state of NOCOUNT */
SET NOCOUNT ON ;
IF @@OPTIONS & 512 <> 0 /* verify state of NOCOUNT */
PRINT N'This user has SET NOCOUNT turned ON.';
ELSE
PRINT N'This user has SET NOCOUNT turned OFF.';
PRINT N'NCStat = ' + cast(@NCStat as nvarchar) ; /* verify value of @NCStat */
/* line 23 */ SET NOCOUNT @NCStat ; /* return NOCOUNT to original state */
IF @@OPTIONS & 512 <> 0 /* verify state of NOCOUNT */
PRINT N'This user has SET NOCOUNT turned ON.';
ELSE
PRINT N'This user has SET NOCOUNT turned OFF.';
GO
IF@@OPTIONS&512 0/*检查NOCOUNT的原始状态*/
打印“此用户已将NOCOUNT设置为打开状态”;
其他的
打印“此用户已将NOCOUNT设置为关闭状态”;
声明@NCStat位
设置@NCStat=(@@OPTIONS&512)/*将@NCStat设置为NOCOUNT的原始状态*/
不计数;
IF@@OPTIONS&512 0/*验证NOCOUNT的状态*/
打印“此用户已将NOCOUNT设置为打开状态”;
其他的
打印“此用户已将NOCOUNT设置为关闭状态”;
打印N'NCStat='+cast(@NCStat作为nvarchar);/*验证@NCStat的值*/
/*第23行*/SET NOCOUNT@NCStat;/*将NOCOUNT返回到原始状态*/
IF@@OPTIONS&512 0/*验证NOCOUNT的状态*/
打印“此用户已将NOCOUNT设置为打开状态”;
其他的
打印“此用户已将NOCOUNT设置为关闭状态”;
去
如果第23行被注释掉,则所有其他行都可以正常工作,但第23行给出了上述错误。您不能使用变量设置
NOCOUNT
:
/* line 23 */ SET NOCOUNT @NCStat ; /* not legal syntax */
我会这样做:
/* line 23 */
if @NCStat = 1
SET NOCOUNT ON
else
SET NOCOUNT OFF
太好了,太简单了!非常感谢你!