안녕하세요.
필요에 의하여 데이터 들을 수십개의 테이블로 나뉘어 들어가게 설계 하였습니다.
(그렇지 않으면 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 을 쓰는데, 이놈은 또 파라미터 길이 제한이 있네요.
이럴경우 어찌 해야 하는지요..