SQLserver动态查询(表名或字段动态),并且获取想得到的返回值结果execsp_execute

SQLserver动态查询(表名或字段动态),并且获取想得到的返回值结果execsp_execute,第1张

概述在编写sql语句或存储过程中,难免会有碰到语句中表名或某一字段名不确定,要根据条件来,考试,大提示我们可考虑用SQL 提供的sp_executesql 函数,,他可执行动态的修改,删除,查询功能,至于此函数的详细解释可到sql帮助文档中去查看,下面我将举一个动态查询的列子,包括表名及想查询的字段均不确定:   tab:   (ID int) (A numeric(9,2)) (B numeric(

在编写SQL语句或存储过程中,难免会有碰到语句中表名或某一字段名不确定,要根据条件来,考试,大提示我们可考虑用sql 提供的sp_executesql 函数,他可执行动态的修改,删除,查询功能,至于此函数的详细解释可到sql帮助文档中去查看,下面我将举一个动态查询的列子,包括表名及想查询的字段均不确定:
  tab:
  (ID int) (A numeric(9,2)) (B numeric(9,2))
  1 20.30 33.12
  2 34.32 22.66
  3 45.54 99.19
  完成任务:
  在不确定表名,及查询字段的情况下,根据传入的表名及字段及查询条件,获得对应返回结果:
  1.seq条件
  2.字段名称(A或B)
  3.表名
  要求函数返回值类型为numeric(9,2),列如根据输入参数2取对应字段的值返回
  做法如下:
  declare @tab varchar(10),@rowname varchar(10),@seq int
  declare @sql Nvarchar(1000)
  declare @v numeric(9,2)
  set @rowname=’A’;
  set @seq=2 ;
  set @tab=’tab’;
  set @sql=’select @a=’+@rowname+’ from ’+@tab+’ where ID=’+rtrim(@seq)
  exec sp_executesql @sql,N’@a numeric(9,2) output’,@v output
  select @v
  ====结果=====
  34.32
  提醒:
  对于动态表名及字段使用非常简单,但获取结果使用动态语句是有一定规则的,如上面的列子,需要把表名声明成Nvarchar的,然后执行动态语句时,声明其动态语句中变量前也要加N,如N’@a numeric(9,2) output’.

出处:http://it.114study.com/ncre/article406004.html

总结

以上是内存溢出为你收集整理的SQLserver动态查询(表名或字段动态),并且获取想得到的返回值结果execsp_execute全部内容,希望文章能够帮你解决SQLserver动态查询(表名或字段动态),并且获取想得到的返回值结果execsp_execute所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1176089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存