日期:2014-05-18  浏览次数:20608 次

客户端连接SQLServer时,SQLServer函数host_id()生成的值是否是唯一的?
我做过测试,同台机器多个连接返回值都不一样,不同网段相同ip连接返回值也不一样,按着SQL帮助上说的:返回工作站标识号(工作站标识号是连接到 SQL Server 的客户端计算机上的应用程序的进程 ID (PID))。

又有人说net_address 为SQL SERVER分配的虚拟MAC地址,唯一。host_id是将net_address翻译成对应的整数。

不知道是否可以说:因为SQL SERVER分配的虚拟MAC地址唯一,所以host_id是唯一的? 
 


------解决方案--------------------
如果:当前数据库+主机+服务器用户或数据库用户不一样,则HOST_ID()返回的值不一样。
------解决方案--------------------
HOST_ID() 返回工作站标识号。即客户端标识.

同一客户端,用不同用户,连接同一主机,所得标识号相同.
同一客户端,连接不同主机,所得标识号不同.
不同客户端,连接同一主机,所得标识号不同. 

------解决方案--------------------
探讨
HOST_ID() 返回工作站标识号。即客户端标识.

同一客户端,用不同用户,连接同一主机,所得标识号相同.
同一客户端,连接不同主机,所得标识号不同.
不同客户端,连接同一主机,所得标识号不同.