【问题标题】:sp_executesql Parameters Valuessp_executesql 参数值
【发布时间】:2016-11-23 10:06:20
【问题描述】:

我有一个可以修改我的用户的表,这意味着用户可以添加列,因为我不知道该表将有多少列,我不知道如何提供 sp_executesql 值。

到目前为止我的代码:

SET @sSQL = (
    N'INSERT INTO dbo.MyTable
    VALUES('+@numParametros+')'
)

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

这是我需要帮助的地方,因为我不知道表格有多少列我不知道我需要提供多少@parameters

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

我有一个 @values 变量,其中包含需要插入的值,但如果我放置下一条语句,sql 仅使用 @values 来提供第一列

EXEC sp_executesql @sSql, @ParmDefinition, @values

希望你能帮忙,谢谢

【问题讨论】:

    标签: sql sql-server tsql dynamic-sql


    【解决方案1】:

    如果您不知道参数的数量,您应该手动构建 SQL 语句。下面是一个例子(第三列是 varchar 类型,使用了双倍配额):

    DECLARE @sSQL NVARCHAR(MAX);
    DECLARE @numParametros NVARCHAR(MAX);
    
    SET @numParametros = '1,2,''test''';
    
    SET @sSQL = (
        N'INSERT INTO Table1
        VALUES('+@numParametros+')'
    )
    exec sp_executesql @sSQL
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 2015-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多