文档章节

动态表名的查询SQL

AuChang
 AuChang
发布于 2017/01/04 09:17
字数 245
阅读 47
收藏 0

CREATE TABLE [dbo].[TB_User](
 [ID] [int] NOT NULL,
 [Name] [varchar](50) NOT NULL,
 [Score] [varchar](50) NULL,
 ) ON [PRIMARY]

INSERT INTO [dbo].[TB_User]
   ([ID],[Name] ,[Score])
 VALUES (1,'Lucy','');
INSERT INTO [dbo].[TB_User]
   ([ID],[Name] ,[Score])
 VALUES (1,'Lili','');
INSERT INTO [dbo].[TB_User]
   ([ID],[Name] ,[Score])
 VALUES (1,'Jack','');


declare @exesql nvarchar(1000);
declare @table varchar(50);
set @table='TB_User';
set @exesql='SELECT *  FROM [dbo].'+@table ;
execute sp_executesql @exesql

declare @exesql nvarchar(1000);
declare @table varchar(50);
set @table='TB_User';
set @exesql='update [dbo].'+@table+' set Score=''Good''';
execute sp_executesql @exesql


过程 sp_executesql,参数类型必须为 'ntext/nchar/nvarchar'


另外的例子:

 

DECLARE @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);

/* Build the SQL string one time.*/
SET @SQLString =
     N'SELECT * FROM AdventureWorks.HumanResources.Employee
     WHERE ManagerID = @ManagerID';
SET @ParmDefinition = N'@ManagerID tinyint';
/* Execute the string with the first parameter value. */
SET @IntVariable = 197;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @ManagerID = @IntVariable;
/* Execute the same string with the second parameter value. */
SET @IntVariable = 109;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @ManagerID = @IntVariable;
--------------------------------------------------------------------

DECLARE @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @max_title varchar(30);

SET @IntVariable = 197;
SET @SQLString = N'SELECT @max_titleOUT = max(Title)
   FROM AdventureWorks.HumanResources.Employee
   WHERE ManagerID = @level';
SET @ParmDefinition = N'@level tinyint, @max_titleOUT varchar(30) OUTPUT';

EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title OUTPUT;
SELECT @max_title;


-----------------------------------------------------------
更多的解释请参考 微软帮助文档。

© 著作权归作者所有

AuChang
粉丝 0
博文 15
码字总数 19523
作品 0
郑州
系统管理员
私信 提问
SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果

SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果( exec sp_execute 关 键 词: 在编写sql语句或存储过程中,难免会有碰到语句中表名或某一字段名不确定,要根据条件来,这时,...

zting科技
2017/01/18
0
0
eric_1989/jfire-sql

#Jfire-Sql框架 [TOC] ##框架说明## Jfire-sql是一个sql映射框架,通过将一个接口方法和sql语句绑定,来达到调用方法就是发出sql语句的目的。框架提供了透明自动的结果到对象,对象集合的转换...

eric_1989
2015/09/02
0
0
MyBatis 实践 -动态SQL/关联查询

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hanqing280441589/article/details/50761310 标签: Java与存储 动态SQL 动态SQL提供了对SQL语句的灵活操作,...

菜鸟-翡青
2016/02/28
0
0
Mybatis动态构建Sql(无实体类)

先简单说下Mybatis的动态sql,这不是今天的重点。 MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。 例如,sql语句where条件中,需要一些安全判断,例如...

perfectspr
2014/11/05
5.9K
2
oracle 开发中动态SQL的使用方法

oracle 开发中动态SQL的使用方法 一般的PL/SQL程序设计中,在DML和事务控制的语句中可以直接使用SQL,但是DDL语句及系统控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DDL语句及...

陆朋
2013/07/24
202
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
10
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
81
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部