책에 있는 예제를 일단 이름만 바꾸서어 실행 해보았다.
이걸로 인해서 Filestream에 관해서 조금은 한발더 앞에 나간듯한 느낌이 드네요..^^


Use [FStreamDB]
Go

IF OBJECT_ID('[dbo].[usp_InsertMusic]','P') IS NOT NULL
DROP PROCEDURE [dbo].[usp_InsertMusic];
GO

IF OBJECT_ID('[dbo].[usp_GetMusicFileName]','P') IS NOT NULL
DROP PROCEDURE [dbo].[usp_GetMusicFileName];
GO

IF OBJECT_ID('[dbo].[usp_GetMusicData]','P') IS NOT NULL
DROP PROCEDURE [dbo].[usp_GetMusicData];
GO

CREATE PROCEDURE [dbo].[usp_InsertMusic]
@musicName AS NVARCHAR(100) - Music 이름
,@musicData AS VARBINARY(MAX) - Music Data
,@FileName AS NVARCHAR(100) - Music 파일명
,@FileExtension AS NVARCHAR(8) - Music 확장자
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO dbo.musicTb1(
id
,musicName
,musicData
,fileName
,fileExtension
) VALUES (
NEWID()
,@musicName
,@musicData
,@FileName
,@FileExtension
);
END;
GO


-- Music 일련번호에 의해 파일명 및 음악 제목 불러오는 저장 프로시저
CREATE PROCEDURE usp_GetMusicFileName
@mNumber AS INT
AS
BEGIN
SET NOCOUNT ON;
SELECT fileName, musicName FROM dbo.musicTb1
WHERE mNumber = @mNumber;
END;
GO

-- 음악 파일 불러 오는 프로시저
 
CREATE PROCEDURE usp_GetMusicData
@mNumber AS INT
AS
BEGIN
SET NOCOUNT ON;
SELECT musicData FROM dbo.musicTb1 WHERE mNumber = @mNumber;
END;
GO

From 뇌를 자극하는 SQL Server 2008 한빛미디어 

Tip

파일로 놔두는것과 DB 에 넣는것에 가장 큰 차이점은 저장에 드는 비용이라고 생각합니다.

업로드 된 파일이 적합하여 파일로 저장하는 경우 mv 해서 원하는 경로에 옮겨넣으면 끝이지만,

DB 에 넣으려면 파일스트림을 한번 읽어서 저장해야 되죠.

그만큼 DB 커넥션도 오래 잡고 있겠고요.


+ Recent posts