在安装之前,我们的应用程序会检查 SQL 以确保它具有正确的权限以及各种设置。这些设置之一是@@OPTION NOCOUNT
.
我似乎一生都无法弄清楚如何从数据库中提取这个值。
我试过这个。不管NOCOUNT
是打开还是关闭,总是返回 1。
DECLARE @NOCOUNT INT = 1; IF ( (512 & @@OPTIONS) = 512 ) SET @NOCOUNT = 10;
SELECT @NOCOUNT AS NOCOUNT;
我尝试使用 Java 中的单独 SQL 语句创建一个临时表,并尝试从那里提取值但没有成功。表创建得很好,但在这种情况下始终插入的值为零。
CREATE TABLE TempNoCount(tNoCount int);
DECLARE @NOCOUNT int = 0;
IF ( (512 & @@OPTIONS) = 512 ) SET @NOCOUNT = 1;
INSERT INTO #TempNoCount (tNoCount) VALUES (@NOCOUNT);
不管我做什么,我似乎都无法从数据库中提取正确的值。
即使在 Java 中运行此查询也会返回零。
DECLARE @NOCOUNT INT = 0
IF @@OPTIONS & 512 > 0 SET @NOCOUNT = 2
SELECT @NOCOUNT AS NC
我也刚刚尝试通过 java 进行简单查询:
SELECT CONVERT(INT,@@OPTIONS & 512) as NOCOUNT;
不管它是打开还是关闭,仍然总是返回零。
我花了几天时间试图弄清楚如何NOCOUNT
使用 java 应用程序检查是否打开或关闭,但我已经没有想法了。
奇怪的部分是当我使用 SQLMgmt 工作室时,一切都很好而且花花公子。创建插入等一切正常。当我使用我的java程序时它没有。
这是我对java的限制吗?MS不想让你拉@@OPTIONS
使用外部程序吗?
我什至尝试了一个存储过程。当我调用存储过程时,它仍然返回零,即使结果应该是 512 时NOCOUNT
打开....
有什么建议么?在这一点上,我更乐意尝试任何事情。