gpt4 book ai didi

.net - 在 SQL Server 中,SESSIONPROPERTY 和 @@Options 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-01 02:47:18 28 4
gpt4 key购买 nike

在我的 .Net 应用程序中,如果我执行以下命令,值将不匹配:

SELECT 
SESSIONPROPERTY('ARITHABORT'),
CASE WHEN (@@OPTIONS & 64) = 64 THEN 1 ELSE 0 END

我的印象是 SESSIONPROPERTY@@OPTIONS 会产生相同的结果。在我的例子中,SESSIONPROPERTY 返回 0 而 @@OPTIONS 返回 1。

哪个更准确,为什么?

最佳答案

我同意 Jeroen 的观点...它不是特定于 .Net 的。 @@OPTIONS 反射(reflect)了连接中的内容,而 SESSIONPROPERTY 则没有。打开跟踪以查看连接上发生的情况,您将看到 .Net 默认连接的作用:

enter image description here

我在运行命令之前完成了相同的设置:

alter database [thedatabase] set arithabort on with no_wait

...我的测试工具是:

using ( var conn = new SqlConnection( "Data Source=.;Initial Catalog=thedatabase;Integrated Security=True" ) )
{
conn.Open( );
using ( var cmd = conn.CreateCommand( ) )
{
cmd.CommandText = "SELECT SESSIONPROPERTY( 'ARITHABORT' ), CASE WHEN(@@OPTIONS &64) = 64 THEN 1 ELSE 0 END";
cmd.CommandType = System.Data.CommandType.Text;
using ( var reader = cmd.ExecuteReader( ) )
{
while ( reader.Read( ) )
{
Console.WriteLine( "{0},{1}", reader[ 0 ], reader[ 1 ] );
}
}
}
}

有人想知道这是一个错误......还是只是 squirrely doc。

关于.net - 在 SQL Server 中,SESSIONPROPERTY 和 @@Options 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54560319/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com