나는 더 유연하게 작업하고있는 SQL 스크립트를 가지고 있습니다. 한 DB의 테이블에 행을 삽입 한 다음 테이블을 만들고 동일한 서버의 다른 DB에 행을 삽입 할 수 있어야합니다. 나는이 두 가지를 각각 다른 두 개의 스크립트로 할 수 있지만, 어떻게 하나로 처리 할 수 있는지 알아 내려하고있다.하나 이상의 "use db"를 사용할 때 변수를 사용하는 방법
use firmTriad
create table #TempTable (IssueId nvarchar(300),[SQL] nvarchar(300),FirmID varchar(255),[Table] varchar(255),SecurityDelete varchar(255)
,SecurityKeep varchar(255))
declare @IssueID nvarchar(300),@SQL nvarchar(300),@FirmID varchar(255),@SecurityCUSIPdelete varchar(255),@SecurityCUSIPkeep varchar(255)
set @SecurityCUSIPkeep = 'AET133A20'
set @SecurityCUSIPdelete = 'AEXVA0559'
set @FirmID = 'firmTriad'
set @IssueID = 'RQST00002652426'
set @IssueID = 'tblSecurity_MSReference_' + @IssueID
insert into #TempTable (IssueId,FirmID,SecurityDelete,SecurityKeep)
select @IssueID,@FirmID,@SecurityCUSIPdelete,@SecurityCUSIPkeep
use PSBackup
select * from #TempTable
declare @Table varchar(255), @PSTable varchar(255)
set @PSTable = 'tblSecurity_MSReference_' + @IssueID
set @Table = @FirmID + '.dbo.' + left(@Table,len(@Table)-16)
print (@FirmID)
set @SQL = 'create table ' + @IssueID + '([RecID],[SecurityID],[MSCUSIP],[LastUpdateDT]
,Issue_Key,Issue_Backup_Date,Issue_Backup_Len)'
exec @SQL
insert into sys. (@firmID + '.dbo.tblSecurity_MSReference') --firmTriad.dbo.tblSecurity_MSReference
select [RecID],[SecurityID],[MSCUSIP],[LastUpdateDT],Issue_Key,Issue_Backup_Date,Issue_Backup_Len
from @Table
where [SecurityID] in(select RecID from firmTriad.dbo.tblSecurity where CUSIP in(@SecurityCUSIPdelete,@SecurityCUSIPkeep))
나는 두 use db
섹션 사이 이월 변수를 얻는 방법을 알아낼 수 없습니다 : 여기에 내가 무엇을 시도했다의 예입니다.
도움을 주셔서 감사합니다.하지만 여전히 몇 가지 질문이 있습니다. – Mike