가능하지만 그만한 가치는 없습니다. openrowset을 사용하여이를 수행 할 수 있습니다. 아래 예를 볼 수 있습니다. 서버 이름을 해당 서버로 바꿔야합니다. 이 일을 어기면 디버깅하는 치료 될 수 있도록 인용
drop table #tempT
create table #tempT
(
name sysname
)
insert into #tempT
values ('backupmediafamily')
select * from #tempT
declare @sp_executesqltext nvarchar(max) = 'select * from sys.tables where name like ''%backup%'' '
select @sp_executesqltext = replace(@sp_executesqltext,'''','''''''''')
declare @sql nvarchar(max)
set @sql = 'update t
set name = ''new''
from (' +
'SELECT * FROM OPENROWSET(''sqloledb'', ''server='[email protected]@SERVERNAME+';database=master;trusted_connection=yes'',' +
'''exec msdb.dbo.sp_executesql N'''''[email protected]_executesqltext+''''''')) a
inner join #tempt t on t.name = a.name'
exec sp_executesql @sql
select * from #tempT
많은 : 당신은 당신이 시도 할 수있는 좀 더 역동적 인 무언가를 원한다면
use master
go
drop table #tempT
create table #tempT
(
name sysname
)
insert into #tempT
values ('backupmediafamily')
select * from #tempT
update t
set name = 'new'
from (SELECT * FROM OPENROWSET('sqloledb', 'server=YourServerName;database=master;trusted_connection=yes','exec msdb.dbo.sp_executesql N''select * from sys.tables''')) a
inner join #tempt t on t.name = a.name
select * from #tempT
.
좋아, 추적. 그건 불행한 일이지만, 그렇게 할거야. 감사. – dthree