使用SQL命令在数据库中查找指定的值
假设我现有一个数据库,内有许许多多有关联的表,某几个表中有“产品编号”这一字段,我并不知道要找的记录位于哪些表,我想要从该数据库在查找出产品编号为1314的表及记录,我自...
假设我现有一个数据库,内有许许多多有关联的表,某几个表中有“产品编号”这一字段,我并不知道要找的记录位于哪些表,我想要从该数据库在查找出产品编号为1314的表及记录,我自己理解命令格式应是这样的:
select * from all where 产品编号=1314
上面命令不知道格式对不对,要从所有表中进行查找不知是不是用all还是其他的,后面的条件选项不知格式对不对,请指教。
我是SQL菜鸟。 展开
select * from all where 产品编号=1314
上面命令不知道格式对不对,要从所有表中进行查找不知是不是用all还是其他的,后面的条件选项不知格式对不对,请指教。
我是SQL菜鸟。 展开
展开全部
SQL没有from all这样的写法的,要的话只能写:
DECLARE c_cursor CURSOR FOR
(
select a.name From sysobjects a
inner join syscolumns b
on (a.id=b.id)
where a.xtype='U' and b.name=‘产品编号'
)
---通过字段名查询表名
DECLARE @tablename varchar(100)
declare @sql varchar(max)
OPEN c_cursor
FETCH NEXT FROM c_cursor
WHILE @@FETCH_STATUS = 0
BEGIN
set @sql='select * from ' + @tablename + ' 产品编号=1314'
exec (@sql)
FETCH NEXT FROM c_cursor into @tablename
END
CLOSE c_cursor
DEALLOCATE c_cursor
go
DECLARE c_cursor CURSOR FOR
(
select a.name From sysobjects a
inner join syscolumns b
on (a.id=b.id)
where a.xtype='U' and b.name=‘产品编号'
)
---通过字段名查询表名
DECLARE @tablename varchar(100)
declare @sql varchar(max)
OPEN c_cursor
FETCH NEXT FROM c_cursor
WHILE @@FETCH_STATUS = 0
BEGIN
set @sql='select * from ' + @tablename + ' 产品编号=1314'
exec (@sql)
FETCH NEXT FROM c_cursor into @tablename
END
CLOSE c_cursor
DEALLOCATE c_cursor
go
展开全部
1、首先你得确定你的产品字段名称。如你所说是code,如果你字段名都不能确认,肯定是不行的。
2、用游标遍历所有用户表。
3、得到每张用户表名,同时遍历所有表的字段,判断字段code是否存在,如果存在
select code into #temp from tb 将编码值插入到临时表
4、游标循环完成后 select code from #temp
2、用游标遍历所有用户表。
3、得到每张用户表名,同时遍历所有表的字段,判断字段code是否存在,如果存在
select code into #temp from tb 将编码值插入到临时表
4、游标循环完成后 select code from #temp
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要用到数据库的内连接 inner join,
八级。chen_hongyang,的答案可以帮到你
八级。chen_hongyang,的答案可以帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你思路错了,应该是先在系统表里面查询到列名=产品编号的表,然后再拿1314的值来查。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |