SQL 서버에서 하나의 PDF 파일을 특정 위치로 복사 할 수 있습니다. 하지만 여러 파일로 어떻게 할 수 있습니까? 내가 FormID, PDF와 테이블이xp_cmdshell을 사용하여 여러 파일을 복사하는 방법
EXEC master..xp_cmdshell 'BCP "SELECT PDF FROM [MEJAMES].[dbo].tblPolicyForms WHERE FormID = 20 " queryout "C:\Users\UserName\Docs\Folder\'[email protected]+'.pdf" -T -N'
, PDF_Filename
select FormID,PDF,PDF_Filename
from [dbo].[tblPolicyForms]
어떻게 각 FormID, 추출 PDF 파일로 이름을 PDF_Filename.pdf를 통해 I 루프? 이것은 당신에게 당신이 어떤하여 출력 목록을 정의 할 수있는 기능을 제공하기 때문에 내가 커서 완패를 갔다
CREATE TABLE #tblPolicyForms
(
FormID INT NOT NULL
,PDF varbinary(max) NULL
,PDF_FIlename VARCHAR(max)
)
INSERT INTO #tblPolicyForms
SELECT FormID,
PDF,
PDF_FileName
FROM [dbo].[tblPolicyForms]
WHERE FormID IN (19,20,21,22)
--select * from #tblPolicyForms
DECLARE @FormID varchar(4);
DECLARE @FileName VARCHAR(200);
DECLARE FormID_cursor CURSOR FOR
SELECT
FormID
,PDF_FIlename
FROM
#tblPolicyForms
WHERE FormID IN (19,20,21,22)
--where whatever conditions you need to get the FormIDs you want to use
OPEN FormID_cursor
FETCH NEXT FROM FormID_cursor
INTO @FormID, @FileName
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC master.dbo.xp_cmdshell 'BCP "SELECT PDF FROM [DBname].[dbo].tblPolicyForms " queryout "C:\Users\UserName\Documents\ExportDir\'[email protected]+'" -T -N'
FETCH NEXT FROM FormID_cursor
INTO @FormID, @FileName
END
CLOSE FormID_cursor
DEALLOCATE FormID_cursor
쿼리 데이터를 한 줄에 한 파일의 BCP 정보와 함께 .bat 또는 .cmd 파일로 출력하고 대신 호출하십시오. 또는, xp_cmdshell이라고하는 문자열을 여러 줄과 같이 만드십시오. 예 :''BCP 'SELECT FROM [MEJAMES]. [dbo] .tblPolicyForms WHERE FormID = 20 "queryout"C : \ Users \ UserName \ Docs \ Folder \ IL02708G.pdf FormID = 22 "queryout"C : \ Users \ UserName \ Docs \ Folder \ "- T -N '+ CHAR (13) + CHAR (10) +'BCP"SELECT PDF에서 [MEJAMES]. [dbo] .tblPolicyForms Where FormID = IL00034H.pdf "-T -N'' –