我想在一张表的一个字段里面存入另一张表的名字,例如:
ID TableName
1 t
2 g
随后通过TableName里的名字来操作那张表
请问我怎么实现呢?如果这样不行的话,那有什么办法吗?
3 个解决方案
#1
declare @a varchar(100)
select @a=tablename from 表 where id=1
exec('select * from '+@a)
select @a=tablename from 表 where id=1
exec('select * from '+@a)
#2
是字段[也就是在该记录中 另外一个表的名字]变成SQL语句的一部分
执行SQL语句
DECLARE @charSQL VARCHAR(1000)
DECLARE @charTable SYSNAME
--生成SQL语句
SET @charTable=xxx...
SET @charSQL='SELECT * FROM '+@charTable+' WHERE ...'条件
--生成SQL语句
EXECUTE(@charSQL)
执行SQL语句
DECLARE @charSQL VARCHAR(1000)
DECLARE @charTable SYSNAME
--生成SQL语句
SET @charTable=xxx...
SET @charSQL='SELECT * FROM '+@charTable+' WHERE ...'条件
--生成SQL语句
EXECUTE(@charSQL)
#3
都被上面的说完了,可以看看sysobjects系统表,它里面存放的就是整个表的信息
#1
declare @a varchar(100)
select @a=tablename from 表 where id=1
exec('select * from '+@a)
select @a=tablename from 表 where id=1
exec('select * from '+@a)
#2
是字段[也就是在该记录中 另外一个表的名字]变成SQL语句的一部分
执行SQL语句
DECLARE @charSQL VARCHAR(1000)
DECLARE @charTable SYSNAME
--生成SQL语句
SET @charTable=xxx...
SET @charSQL='SELECT * FROM '+@charTable+' WHERE ...'条件
--生成SQL语句
EXECUTE(@charSQL)
执行SQL语句
DECLARE @charSQL VARCHAR(1000)
DECLARE @charTable SYSNAME
--生成SQL语句
SET @charTable=xxx...
SET @charSQL='SELECT * FROM '+@charTable+' WHERE ...'条件
--生成SQL语句
EXECUTE(@charSQL)
#3
都被上面的说完了,可以看看sysobjects系统表,它里面存放的就是整个表的信息