이것은 잘 작동하는 SQL 커서 조각입니다. 하지만 이제 여러 매개 변수를 @sql
에 전달하려고합니다.SQL 커서 출력에 배수 매개 변수 전달
두 번째 코드 스 니펫의 주석을 참조하십시오. 나는 봤지만, 나는 이것에 대한 해답을 찾지 못하고있다.
set @sql = N' use TESTDOMAINDATABASE' + convert(nvarchar, @domainID) + @NewLineChar +
N' select @subDomain = (select subDomain from tblDomains (nolock))'
execute sp_executesql @sql, N'@subDomain nvarchar(500) output', @subDomain output
print 'subDomain is ' + @subDomain + ' and the domainID is ' + convert(nvarchar,@domainID)
그러나이 전 tblDomains
에서 다른 열을 원하는 가정 해 봅시다 (예를 들어 domainName
).
위의 진술을 어떻게 업데이트합니까?
set @sql = N' use TESTDOMAINDATABASE' + convert(nvarchar, @domainID) + @NewLineChar +
N' select @subDomain = (select subDomain from tblDomains (nolock))' + @NewLineChar +
N'select @domainName = (select domainName from tblDomains(nolock))'
execute sp_executesql @sql, N'@subDomain nvarchar(500) output', @subDomain output /* How do I pass multiple paramaters here ? */
execute sp_executesql @sql, N'@domainName nvarchar(500) output', @domainName output /*Adding a 2nd line does not do the trick - results in an error that I must declare the scalar variable @domainName */
print 'subDomain is ' + @subDomain + ' and the domainID is ' + convert(nvarchar,@domainID) + ' + and the domain name is ' @domainName'
예, 각 데이터베이스의 tblDomains 테이블에는 단 하나의 행만 있습니다. 아주 좋아! 고마워, 애런 – Ray
데이터를 중앙 집중적으로 저장하는 것이 좋습니다. 중앙 뷰 (DB_NAME()로 식별)에서 데이터베이스 행을 가져 오는 뷰를 각 데이터베이스에 작성할 수 있습니다. –