2016-11-23 46 views
1

我有一個表可以修改我的用戶,這意味着用戶可以添加列,因爲我不知道有多少列de table會有,我不知道我怎麼能提供sp_executesql值。sp_executesql參數值

我迄今爲止代碼:

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, ???? 

我有一個包含了需要插入值的@values變量,但如果我把下一個statment SQL只使用@values燃油供給的第一列

EXEC sp_executesql @sSql, @ParmDefinition, @values 

希望你能幫忙,謝謝

回答

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 
相關問題