2016-11-23 2 views
1

사용자가 수정할 수있는 테이블이 있습니다. 사용자가 열을 추가 할 수 있음을 의미합니다. 테이블에있는 열 수를 알 수 없기 때문에 sp_executesql 값을 어떻게 제공 할 수 있는지 알 수 없습니다. 지금까지sp_executesql 매개 변수 값

내 코드 : 나는 때문에 내가 테이블이 나는

를 제공 할 필요가 얼마나 많은 @parameters 알고 질수있다 않습니다 얼마나 많은 열을 잘 모릅니다 사실, 도움을 필요로하는 곳에 여기

SET @sSQL = (
    N'INSERT INTO dbo.MyTable 
    VALUES('[email protected]+')' 
) 

--For Explaining purposes since @stmtPar is SET dynamically 
--in a while-loop at de begining of the SP 
SET @ParmDefinition = @stmtPar 

입니다

EXEC sp_executesql @sSql, @ParmDefinition, ???? 

I 삽입해야하는 값을 포함하는 @values ​​변수가 있지만 다음 한 Statment SQL 넣을 경우에만 공급 fo를 첫번째 컬럼을 사용 @values ​​

EXEC sp_executesql @sSql, @ParmDefinition, @values 
01,

도움을 주실 수 있습니다.

답변

0

매개 변수의 개수를 모르면 수동으로 SQL 문을 작성해야합니다. 다음은 예입니다 (세 번째 열에는 varchar 유형이 있고 두 배 할당량이 사용됩니다).

DECLARE @sSQL NVARCHAR(MAX); 
DECLARE @numParametros NVARCHAR(MAX); 

SET @numParametros = '1,2,''test'''; 

SET @sSQL = (
    N'INSERT INTO Table1 
    VALUES('[email protected]+')' 
) 
exec sp_executesql @sSQL