请教如何根据表名变量查询该表的记录数?
2008-02-19 13:40
246 查看
SQL code
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
动态sql语句基本语法
1 :普通SQL语句可以用Exec执行
eg: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注重字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' @fname ' from tableName') -- 请注重 加号前后的 单引号的边上加空格
当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名
declare @s varchar(1000)
set @s = 'select ' @fname ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错
declare @s Nvarchar(1000) -- 注重此处改为nvarchar(1000)
set @s = 'select ' @fname ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确
3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中?
declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from cap '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
/*
-----------
18
(1 行受影响)
*/
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
动态sql语句基本语法
1 :普通SQL语句可以用Exec执行
eg: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注重字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' @fname ' from tableName') -- 请注重 加号前后的 单引号的边上加空格
当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名
declare @s varchar(1000)
set @s = 'select ' @fname ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错
declare @s Nvarchar(1000) -- 注重此处改为nvarchar(1000)
set @s = 'select ' @fname ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确
3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中?
declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from cap '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
/*
-----------
18
(1 行受影响)
*/
相关文章推荐
- Oracle中如何根据一个字段查询是否有符合条件的记录
- 如何让从数据库中查询出符合条件的记录,然后给每个记录自动加上序号,序号是根据符合条件的记录多少在随时变化.而且也会在以查询生成的报表中显示出来.谢谢
- 当有多条记录时,如何查询其中的一条的一个字段,并赋值给一个变量
- 织梦标签dede:sql根据页面动态参数变量动态查询调用其它信息
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- 如何用SQL查询语句获取Oracle表 树形结构的记录(PL/SQL )
- plsql developer如何查询SQL语句执行历史记录
- hbase RowFilter如何根据rowkey查询以及实例实现代码
- 数据库查询优化方案(处理上百万级记录如何提高处理查询速度)
- OpenErp中如何实现在A类所在页面查询B类的记录
- Oracle数据库查询优化方案(处理上百万级记录如何提高处理查询速度)
- SQL语句:orac 3ff0 le中如何插入Date类型的数据和根据Date数据进行查询的方法
- sql根据某一字段查询不重复记录,同时要查询出所有满足条件的字段信息
- 如何查询oracle中sql操作的记录
- 如何查询出数据库表中第21条到第30条记录?
- 请教oschina缓存设计和效率问题(某些表查询后即需要更新某字段的情况如何缓存)
- 如何查询不重复字段记录
- 如何在PL/SQL Developer中设置使其可以显示查询返回的所有记录?
- 通用存储过程之三:根据主键的值,查询记录的存储过程
- 如何查询SQL Server备份还原历史记录