안녕하세요.


필요에 의하여 데이터 들을 수십개의 테이블로 나뉘어 들어가게 설계 하였습니다.

(그렇지 않으면 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 을 쓰는데, 이놈은 또 파라미터 길이 제한이 있네요.


이럴경우 어찌 해야 하는지요..