SqlServer动态表查询
程序员文章站
2024-03-16 21:55:34
...
事情是这样字的,有的时候我们想去比较两个值类型需要写一个方法,我们比较两个字符类型也需要写一个方法,在c#里面有通用类型-泛型,我们可以通过一个泛型方法就可以搞定。
那么有的时候啊,我们也想通过存储过程,我们传入表名,查询出相对应表的数据,我们假装t-sql也可以面向对象
首先我们假设直接定义一个参数接收这个表名,然后直接select查询结果:
declare @tablName nvarchar(50)
declare @sql nvarchar(100)
set @tablName = 'tb';
select * from [@tablName]
好像并没有错误
执行一下:对象名 '@tablName' 无效。
分析一下:这里定义了一个nvarchar类型,不管怎么样,这个定义的变量是一个字符串,查询一个字符串表那应该是会出错的,把select * from [@tableName]改成select @tableName,执行一下,结果是一个字段'tb'。so
so,我们字符串拼接,然后执行这个拼接的字符串:
declare @tablName nvarchar(50)
declare @sql nvarchar(100)
set @tablName = 'tb';
set @sql = 'select * from 'aaa@qq.com
exec(@sql)
结果:
推荐阅读
-
如何避免回表查询?什么是索引覆盖?
-
SqlServer动态表查询
-
sqlserver存储过程插入一年的日期到一个表 博客分类: sqlserver 存储过程 sqlserver存储过程日期
-
mssql sqlserver 获取数据表中一行中多列中列中的最小值的方法分享
-
php+mysql+ajax实现单表多字段多关键词查询的方法
-
Mybatis动态调用表名和字段名的解决方法
-
详解Yii2.0使用AR联表查询实例
-
Mybatis动态调用表名和字段名的解决方法
-
java 查询oracle数据库所有表DatabaseMetaData的用法(详解)
-
数据量大的表的分表方案 以及 跨(同类型的)表查询遇上分组时需要注意的点 博客分类: 数据库 同类型的表跨表查询时间字段分表