代码如下:
create proc simulateOnlineas 
begin declare @boardID varchar(50)
declare @i int 
declare @rndsec bigint
declare @randtime datetime


set @boardID='1367'
set @i=1

while (@i<=2)
begin
set @rndsec=-(rand()*9000)
set @randtime=DATEADD(second,@rndsec,getdate())
INSERT INTO common_UsersOnline(InstanceID,CurrentPlace,ModuleID,UserID,UserName,lastActivityTime) 
SELECT TOP 1 b.ID,t.title,1 as ModuleID,qu.ID,qu.UserName,@randtime AS lastActivityTime 
FROM quan_board b INNER JOIN quan_topic t ON b.id=t.boardid , 
(SELECT TOP 1 ID,UserName FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=192.168.1.80;User ID=sa;Password=;TIMEOUT=0.01').[9so].dbo.[user] 
WHERE ID NOT IN(SELECT UserID FROM common_UsersOnline) AND Interal_C_ID=0 ORDER BY newid()) AS qu 
WHERE t.locktopic<2 AND t.signType=1 AND parentstr like '%,'+@boardID+'%'  ORDER BY newid() 
set @i = @i + 1 
endend========
以上是存储过程。我创建了一个作业后
就是执行这个存储过程
execute simulateOnline
后出现的错误,存储过程在查询分析器中执行成功,绝对没有错误。
我想肯定就是:
OPENDATASOURCE('SQLOLEDB', 'Data Source=192.168.1.80;User ID=sa;Password=;TIMEOUT=0.01').[9so].dbo.[user]
这边出错了。
在作业中出现如下错误:
执行用户: 6doo。不允许用 SETUSER 激活的 Windows NT 用户进行远程访问。 [SQLSTATE 42000](错误 7410).  步骤失败。
6doo用户不是sa权限,是不是这个原因。我也没办法拿到sa权限。
不知道要怎么解决。大家帮帮忙。