데이터베이스 개발자 질문과 답변 게시판
안녕하세요.
필요에 의하여 데이터 들을 수십개의 테이블로 나뉘어 들어가게 설계 하였습니다.
(그렇지 않으면 MDF 파일 하나당 10기가 이상으로 되어 파일 관리 면에서..)
아래는 쿼리 일부 입니다.
DECLARE @STR_AAAA_NM NVARCHAR(100),
@SQL NVARCHAR(MAX),
@PARAM NVARCHAR(128)
SET @SQL = '
INSERT INTO [CW_-------생략----------TE])
VALUES
(@P_INT_ID,
@P_TX_INFO,
@P_TX_INFO_SD,
GETDATE())
'
SET @PARAM = '@P_INT_ID INT,
@P_TX_INFO TEXT,
@P_TX_INFO_SD TEXT'
EXECUTE sp_executesql @SQL, @PARAM,
@P_INT_ID = @INT_ID,
@P_TX_INFO = @TX_INFO,
@P_TX_INFO_SD = @TX_INFO_SD
문제가 되는 부분을 음영 처리 하였습니다.
파라미터의 데이터 형이 TEXT 형 입니다.
그로 인하여 SQL 은 NVARCHAR(MAX) 로 받았습니다.
또한 리턴값이 필요 하여 SP_EXECUTESQL 을 사용 하였습니다.
검색을 해보니 SP_EXECUTESQL 은 프로시저 자체가 파라미터를 4000 자로 제한 하고 있다 합니다.
EXEC의 단점이 있어서 (출력 값 받기 위해) SP_EXECUTESQL 을 쓰는데, 이놈은 또 파라미터 길이 제한이 있네요.
이럴경우 어찌 해야 하는지요..