在sql语句中,怎样将参数做为表名传递到查询语句中
来源:互联网 发布:2016网络热门词汇 编辑:程序博客网 时间:2024/06/05 14:43
今天为了提取出公共的fuction提高执行效率,需要传递表的字段作为参数,语法可以通过,但是查询结果不正确。
将表字段参数换成实际的字段就可以,问题出在“如果将表名,字段名做为参数传递到Sql Server中”
create function backtoCount(@tablename varchar(50))
returns int
as
begin
declare @count int
select @count=count(*) from @tablename
return @count
end
但是这样的时候会报错,说变量@tablename要声明
对于表名作为变量,我们可以使用object_name(id)方法
create function backtoCount(@tablename varchar(50))
returns int
as
begin
declare @count int
select @count=rows from sysindexes where indid in (0,1) and object_name(id)=@tablename
return @count
end
GO
--查sysobjects表有多少行
select dbo.backtoCount( 'sysobjects ')
对于字段变量的话,必须执行动态语句,但是函数里边不能用exec,建议使用存储过程实现。
解决方法:动态SQL
create procedure f_count(@tablename varchar(50))
as
declare @str as varchar(1000)
set @str= 'select count(*) as a from '+@tablename
print @str
exec (@str)
exec f_count 'sysfiles '
- 在sql语句中,怎样将参数做为表名传递到查询语句中
- 将表名,字段名做为参数传递到Sql Server中
- 在c#中执行sql语句时传递参数
- 在asp中实现sql语句参数化查询
- sql语句在sqlserver中根据字段名查询,看哪些表包含了这个字段
- 怎样在Access中执行sql语句。
- 在SQL语句中如何将字符串变量传递给In语句
- 动态sql语句基本语法(字段名,表名,数据库名之类作为变量时,必须用动态SQL如ALTER TABLE中使用程序传递的参数)
- 动态sql语句基本语法(字段名,表名,数据库名之类作为变量时,必须用动态SQL如ALTER TABLE中使用程序传递的参数)
- 动态sql语句基本语法(字段名,表名,数据库名之类作为变量时,必须用动态SQL如ALTER TABLE中使用程序传递的参数)
- 在mysql中修改表名的sql语句
- 在mysql中修改表名的SQL语句
- 在mysql中修改表名的sql语句
- 在mysql中修改表名的sql语句
- 在mysql中修改表名的sql语句
- 在MySQL中修改表名的SQL语句
- c#中sql语句中传递Like参数的写法
- 在Access查询中执行SQL语句
- 你说,后来
- Qt的一些样式技巧
- 123
- Linux内核的Makefile和kconfig解读
- 虚拟主机 简远出品
- 在sql语句中,怎样将参数做为表名传递到查询语句中
- 一个IT人七次跳槽的十点经验总结:跳槽一定要谨慎
- 总结:发送自定义消息
- ASP.NET 取得 Request URL 的各个部分和通过ASP.NET获取URL地址的方法
- 总结:发送自定义消息
- 总结:发送自定义消息
- 总结:发送自定义消息
- 2010.10.28,今天是个好日子,刚刚得到消息---俺要当爹了
- 大数据量问题