여러 연결된 서버에 연결하는 select into 문을 가진 스크립트가 있습니다.스크립트 전체에 가변 범위 유지하기
스크립트를 여러 번 실행할 수 있지만 각 경우 서버와 데이터베이스가 변경되어 몇 가지 테이블 이름이 변경됩니다.
나는 다음 세대와 같이 일종의 일원으로 서버를 정의하기 위해 변수를 사용하기를 바랬지 만 물론 그들은 지역 변수이기 때문에 범위를 벗어납니다.
declare @table_that_changes varchar(100)
declare @linked_server1 varchar(20)
declare @linked_server2 varchar(20)
declare @DB_onserver1 varchar(100)
declare @DB_onserver2 varchar(100)
select @linked_server1 = '[server109]',
@linked_server2 = '[server104]',
@DB_onserver1 = '[database203434]',
@DB_onserver2= '[database416541]',
@table_that_changes = 'LossTable_2191'
내가의 equivilant을 할 수 있도록이 값을 저장하는 가장 좋은 방법은 무엇입니까 select 문이 많이 포함 된 스크립트를 통해 작동
select * from @[email protected]_onserver1.dbo.table1
(예를 들어)?
[SQL Server의 전역 변수] (http://weblogs.sqlteam.com/mladenp/archive/2007/04/23/60185.aspx) – Fuad
u 내 생각에 당신의 방식을 잘 알고 있습니다. 기대는 불가능합니다. 여러분은 데이터베이스와 같은 변수 또는 그와 비슷한 변수로 행동 할 것입니다. 여러분의 정보를 전역 변수로 테이블에 저장하는 것이 더 좋습니다. – Fuad
모든 것을 동적 SQL로 처리해야 스크립트를 읽기 쉽게 만들 수 있습니다. T-SQL은 간단한 언어이며 데이터베이스 이름이 필요한 곳에서는 * 문자열 *이 아닌 * 이름 *을 기대합니다. 도 아니다, 변수) –