打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果( exec sp_execute
关 键 词:  
在编写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'
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
动态SQL语句
SQL详解
mssql 技术 查连接
mysql sql语句大全
学习SQL应知道的动态SQL语句基本语法
SQL Server 跨域查询(权限、语句、过程)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服