declare @tablename varchar(20)
set @tablename='abc'
select * from @tablename
我的一般方法是:
declare @tmpstr varchar(500)
set @tmpstr='select * from '+@tablename
exec(@tmpstr)
这种方式虽然能够解决一般问题,但对于很多问题难以解决,现向各位高手咨询!
6 个解决方案
#1
declare @tmpstr varchar(500)
set @tmpstr='select * from '+@tablename
exec(@tmpstr)
--这种方法不错呀,还有什么难以解决的问题!
set @tmpstr='select * from '+@tablename
exec(@tmpstr)
--这种方法不错呀,还有什么难以解决的问题!
#2
这种动态的写法只能在后台实现,
所以当然有局限性了。
其实养成把事务处理放在后台的习惯还是挻好的
所以当然有局限性了。
其实养成把事务处理放在后台的习惯还是挻好的
#3
我的问题是,有几张表的前几个字段是相同的,比如说tjnf,tjyf,dwid在表a1和表a2等一系列的表中均存在,(tjnf表示年份,tjyf表示月份,dwid表示部门编号),现要求对于任意的表检测某时段某个部门是否有数据存在,除了上述使用的exec方法外还有没有别的方法,其实上述方法我早就用过,只不过想寻求一种象我上面说到的一种办法求解。
#4
这种动态的写法只能在后台实现
--------------
写成存储过程就可以在前台调用,如可以把表名作为参数:
create proc p_t
@tablename sysname
as
declare @tmpstr varchar(500)
set @tmpstr='select * from ' + @tablename
exec(@tmpstr)
go
-- 调用
exec p_t 'pubs..authors'
-- 前台调用(不同的语言写法不同)
set rs = conn.execute("exec p_t " & tablename)
--------------
写成存储过程就可以在前台调用,如可以把表名作为参数:
create proc p_t
@tablename sysname
as
declare @tmpstr varchar(500)
set @tmpstr='select * from ' + @tablename
exec(@tmpstr)
go
-- 调用
exec p_t 'pubs..authors'
-- 前台调用(不同的语言写法不同)
set rs = conn.execute("exec p_t " & tablename)
#5
有没有方法避开execute执行串而能够使用变量的方式来访问表中的数据
--------
你在前台程序中可以啊。
只要构造如:
sql = "select * from " + tablename
这样的字符串,然后执行就可以了。
--------
你在前台程序中可以啊。
只要构造如:
sql = "select * from " + tablename
这样的字符串,然后执行就可以了。
#6
str="select * from "+tablename+" "
#1
declare @tmpstr varchar(500)
set @tmpstr='select * from '+@tablename
exec(@tmpstr)
--这种方法不错呀,还有什么难以解决的问题!
set @tmpstr='select * from '+@tablename
exec(@tmpstr)
--这种方法不错呀,还有什么难以解决的问题!
#2
这种动态的写法只能在后台实现,
所以当然有局限性了。
其实养成把事务处理放在后台的习惯还是挻好的
所以当然有局限性了。
其实养成把事务处理放在后台的习惯还是挻好的
#3
我的问题是,有几张表的前几个字段是相同的,比如说tjnf,tjyf,dwid在表a1和表a2等一系列的表中均存在,(tjnf表示年份,tjyf表示月份,dwid表示部门编号),现要求对于任意的表检测某时段某个部门是否有数据存在,除了上述使用的exec方法外还有没有别的方法,其实上述方法我早就用过,只不过想寻求一种象我上面说到的一种办法求解。
#4
这种动态的写法只能在后台实现
--------------
写成存储过程就可以在前台调用,如可以把表名作为参数:
create proc p_t
@tablename sysname
as
declare @tmpstr varchar(500)
set @tmpstr='select * from ' + @tablename
exec(@tmpstr)
go
-- 调用
exec p_t 'pubs..authors'
-- 前台调用(不同的语言写法不同)
set rs = conn.execute("exec p_t " & tablename)
--------------
写成存储过程就可以在前台调用,如可以把表名作为参数:
create proc p_t
@tablename sysname
as
declare @tmpstr varchar(500)
set @tmpstr='select * from ' + @tablename
exec(@tmpstr)
go
-- 调用
exec p_t 'pubs..authors'
-- 前台调用(不同的语言写法不同)
set rs = conn.execute("exec p_t " & tablename)
#5
有没有方法避开execute执行串而能够使用变量的方式来访问表中的数据
--------
你在前台程序中可以啊。
只要构造如:
sql = "select * from " + tablename
这样的字符串,然后执行就可以了。
--------
你在前台程序中可以啊。
只要构造如:
sql = "select * from " + tablename
这样的字符串,然后执行就可以了。
#6
str="select * from "+tablename+" "