现在有2个SQL server服务器 A 和 B在A上执行 exec (select * from B.dbo.Table)想获取 select * from B.dbo.Table 的进程号 有没有的大哥知道 如何获取?exec (select @@spid select * from B.dbo.Table) ----用这个方法是不行的,这样的spid是A服务器的
调试欢乐多
不是同一台电脑上的2个数据库
是不同电脑上的 不同数据库
FROM OPENROWSET('SQLOLEDB','server';'sa';'password',
'SELECT @@spid') AS a
GO
长期获取,正确的方式是先建立链接服务器,再查询异地SERV的数据库SPID。
http://blog.csdn.net/claro/archive/2009/07/03/4317900.aspxhttp://blog.csdn.net/claro/archive/2010/08/09/5798156.aspx
我的意思是
A服务器连接到B服务器去操作一些数据
那么会在B服务器上创建一个进程,A服务器操作数据的时候,同时会把当前进程号当成数据放入表中
与此同时,还有c,d,e,f机器在操作B服务器相同的表
那么接下来我要对A服务器在B服务器上插入的数据进行删除
如果不加判断那么会同时删除c,d,e,f创建的数据
所以要用进程号来判断是哪个进程创建的数据,只有当前进程能删除自己创建的数据
当前库的机器名+时间,您认为还不行吗?
select @@SERVERNAME+ltrim(SYSDATETIME() )