2016-11-23 40 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 
相关问题