程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SP_EXECUTESQL和输出参数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决SP_EXECUTESQL和输出参数?

开发过程中遇到SP_EXECUTESQL和输出参数的问题如何解决?下面主要结合日常开发的经验,给出你关于SP_EXECUTESQL和输出参数的解决方法建议,希望对你解决SP_EXECUTESQL和输出参数有所启发或帮助;

首先,选择所希望的ID使用的输出变量@ID = ([ID])然后分配该@ID OUTPUT中值@ID使用可变@ID = @ID OUTPUT。另外,您应该使用变量在where子句中传递数据,以避免类似sql的注入问题[ModulID] = @IDModul(即,您不应像那样将其串联起来[ModulID] = ' + @IDModul)。试试这个 :

DECLARE @sqlquery NVARCHAR(MAX)

SET @sqlquery = 'SELECT top (1) @ID = ([ID]) FROM '
                + @TblZimz + ' WHERE [ModulID] = @IDModul'

EXEC SP_EXECUTEsql
  @sqlquery,
  N'@ID INT OUTPUT, @IDModul INT',
  @IDModul = @IDModul,
  @ID = @ID OUTPUT

在这里查看详细信息SP_EXECUTEsql

解决方法

我想从查询中获取ID,但是我得到的是NULL,我的错误在哪里?

DECLARE @TblZimz    NVARCHAR(256)
DECLARE @IdModul    IntegeR
DECLARE @Id         IntegeR

SET @TblZimz        = '_ZIMZ000001'
SET @IdModul        = 1
--SET @Id               = -1

EXECUTE [InsertZimz] @TblZimz,@IdModul,@Id OUTPUT




ALTER PROCEDURE [InsertZimz]
@TblZimz    NVARCHAR(256),@IdModul  NVARCHAR(256),@Id       IntegeR OUTPUT

            DECLARE @SqlQuery NVARCHAR(MAX)
        SET @SqlQuery = 'SELECT TOP (1) ([ID]) FROM ' + @TblZimz + ' WHERE [ModulId] = ' + @IdModul

        EXEC SP_EXECUTESQL @SqlQuery,N'@id integer OUTPUT',@Id OUTPUT

为什么@Id参数始终为null?我看不到我的错误?

大佬总结

以上是大佬教程为你收集整理的SP_EXECUTESQL和输出参数全部内容,希望文章能够帮你解决SP_EXECUTESQL和输出参数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。