SQLSERVER 如何查询整个数据库中某个特定值所在的表和字段
已知数据库[DtradeProductionTFG],已知数据库里边某个表的某个字段储存的值为[CT无袖开胸上衣],如何查询到该值所在的表和字段。参考:https://b...
已知数据库 [DtradeProductionTFG],已知数据库里边某个表的某个字段储存的值为 [CT无袖开胸上衣] ,如何查询到该值所在的表和字段。
参考:https://blog.csdn.net/zengcong2013/article/details/55264202
运行参考里的代码提示执行完成,但是找不到新建的[SP_FindValueInDB],再次运行代码又提示数据库里存在该表,搞不懂,具体要如何操作,还有参考里说的“传入一个想要查找的值”要怎么传入? 展开
参考:https://blog.csdn.net/zengcong2013/article/details/55264202
运行参考里的代码提示执行完成,但是找不到新建的[SP_FindValueInDB],再次运行代码又提示数据库里存在该表,搞不懂,具体要如何操作,还有参考里说的“传入一个想要查找的值”要怎么传入? 展开
1个回答
展开全部
以前写过类似的,参考一下:
declare @str nvarchar(20)
declare @tablename varchar(50)
declare @colname varchar(50)
declare @counts int
declare @sql nvarchar(2000)--以上定义变量
declare cur1 cursor for
select a.name tablename,B.name colname from sys.objects a,syscolumns b where a.object_id=b.id and a.type_desc='USER_TABLE'--定义游标
set @str='CT无袖开胸上衣' --设置要查找的字符
Open cur1 --打开游标
Fetch next From cur1 Into @tablename,@colname
While(@@Fetch_Status = 0) --循环
Begin
set @sql=N'select @counts=COUNT(*) from ' + @tablename + ' where charindex('''+@str+''','+@colname+')>0'
exec sp_executesql @sql,N'@counts int output',@counts output --执行动态sql
if @counts>0 --判断某个表某个字段是否存在特定字符
begin
print @tablename+','+@colname --打印表名及字段名
end
Fetch next From cur1 Into @tablename,@colname
End
Close cur1 --关闭游标
Deallocate cur1 --释放游标
更多追问追答
追问
消息 4104,级别 16,状态 1,第 7 行
The multi-part identifier "B.name" could not be bound.
追答
什么版本sqlserver,远程方便不?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询