执行sp_addlinkedsrvlogin 为什么显示(所影响的行数为 0 行)(所影响的行数为 0 行)(所影响的行数为 0 行)(所影响的行数为 1 行)

fanxiangqin 2003-11-12 10:50:30


?







...全文
42 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-11-14
  • 打赏
  • 举报
回复
use master
go
exec sp_helptext sp_addlinkedsrvlogin
fanxiangqin 2003-11-14
  • 打赏
  • 举报
回复
sp_helptext master.dbo.sp_addlinkedsrvlogin 为什么

第 1 行: '.' 附近有语法错误。
fanxiangqin 2003-11-13
  • 打赏
  • 举报
回复
sp_helptext master.dbo.sp_addlinkedsrvlogin 为什么

第 1 行: '.' 附近有语法错误。
gmlxf 2003-11-12
  • 打赏
  • 举报
回复
你查看一下这个存储过程的代码:
create procedure sp_addlinkedsrvlogin
@rmtsrvname sysname,
@useself varchar(8) = 'true',
@locallogin sysname = NULL,
@rmtuser sysname = NULL,
@rmtpassword sysname = NULL
as
declare @srvid smallint,
@status smallint,
@localsid varbinary(85),
@ret int

-- DISALLOW USER TRANSACTION
set implicit_transactions off
if @@trancount > 0
begin
raiserror(15002,-1,-1,'sp_addlinkedsrvlogin')
return (1)
end

-- CHECK PERMISSIONS
if not (is_srvrolemember('securityadmin') = 1)
begin
raiserror(15247,-1,-1)
return (1)
end

-- VALIDATE @useself PARAMETER --
select @useself = lower(@useself)
if @useself is null or @useself not in ('true','false')
begin
raiserror(15600,-1,-1,'sp_addlinkedsrvlogin')
return 1
end

-- CHECK REMOTE SERVER NAME.
select @srvid = srvid from master.dbo.sysservers where srvname = @rmtsrvname
if @srvid is null
begin
raiserror(15015,-1,-1,@rmtsrvname)
return (1)
end

-- IF SPECIFIED CHECK LOCAL USER NAME
if (@locallogin IS NOT NULL)
begin
select @localsid = sid from master.dbo.syslogins where loginname = @locallogin
if @localsid IS NULL
begin
-- ADD ROW FOR NT LOGIN IF NEEDED --
execute @ret = sp_MSaddlogin_implicit_ntlogin @locallogin
if (@ret = 0)
select @localsid = sid from master.dbo.syslogins where loginname = @locallogin
if (@localsid IS NULL)
begin
raiserror(15067,-1,-1,@locallogin)
return (1)
end
end
end

-- 64 IMPLIES sysxlogins::ishqoutmap is TRUE
select @status = 64

-- IF @useself IS TRUE IT OVERRIDES PARAMETERS @rmtuser, and @rmtpassword
if @useself = 'true'
begin
select @rmtuser = NULL
select @rmtpassword = NULL
select @status = @status | 128
end

BEGIN TRAN

-- DELETE EXISTING MAPPING(s) FOR THIS @sid
update master.dbo.sysxlogins set xstatus = xstatus & ~192
where srvid = @srvid AND ishqoutmap = 1 AND isrpcinmap = 1
AND ((sid IS NULL AND @localsid IS NULL) OR sid = @localsid)
if @@rowcount = 0
delete master.dbo.sysxlogins where srvid = @srvid AND ishqoutmap = 1
AND ((sid IS NULL AND @localsid IS NULL) OR sid = @localsid)

-- ATTEMPT TO TAG THIS ONTO EXISTING ROW --
update master.dbo.sysxlogins
set xstatus = (xstatus & ~192) | @status,
xdate2 = getdate(),
password = convert(varbinary(256), encrypt(@rmtpassword))
where srvid = @srvid AND isrpcinmap = 1
AND ((sid IS NULL AND @localsid IS NULL) OR sid = @localsid)
AND ((name IS NULL AND @rmtuser IS NULL) OR name = @rmtuser)

-- IF NO ROW UPDATED, INSERT NEW ROW --
if (@@rowcount = 0)
insert master.dbo.sysxlogins values
(@srvid, @localsid, @status, getdate(), getdate(), @rmtuser,
convert(varbinary(256), encrypt(@rmtpassword)), 0, NULL)

COMMIT TRAN

-- RETURN SUCCESS
return(0) -- sp_addlinkedsrvlogin
pengdali 2003-11-12
  • 打赏
  • 举报
回复
就是这样,是这个过程里的代码,执行的呀,你不用管它。

34,827

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧