SQL Server 在数据库中查找字符串(不知道表名的情况下 查找字符串)

8 篇文章 0 订阅
4 篇文章 0 订阅

 

查询Employees这个表中的记录

 select * from dbo.Employees

 

Org_Id                                                                                                                                                                                                                                                             EmployeeId  EmployeeName                                       Title
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------- -------------------------------------------------- --------------------------------------------------
0x                                                                                                                                                                                                                                                                 10000       陈希章                                                CEO
0x58                                                                                                                                                                                                                                                               10001       张三                                                 CTO
0x68                                                                                                                                                                                                                                                               10002       李四                                                 CFO
0x5AC0                                                                                                                                                                                                                                                             10003       王五                                                 IT Manager
0x5B40                                                                                                                                                                                                                                                             10004       赵六                                                 Manager
0x5AD6                                                                                                                                                                                                                                                             10005       洪七                                                 Employee

(6 行受影响)

 

测试

同过下面的T-SQL查询 李四 在哪个表中的如下

declare @key varchar(30)
set @key = '李四' --替换为要查找的字符串
DECLARE @tabName VARCHAR(40),@colName VARCHAR(40)
DECLARE @sql VARCHAR(2000)
declare @tsql varchar(8000)
DECLARE tabCursor CURSOR FOR
SELECT name from sysobjects WHERE xtype = 'u' AND name <> 'dtproperties'
OPEN tabCursor
FETCH NEXT from tabCursor INTO @tabName
WHILE @@fetch_status = 0
BEGIN
set @tsql = ''
DECLARE colCursor CURSOR FOR Select Name from SysColumns Where id=Object_Id(@tabName) and xtype=167
OPEN colCursor
FETCH NEXT from colCursor INTO @colName
WHILE @@fetch_status = 0
BEGIN
SET @sql = 'if(exists(select * from ' + @tabName + ' where '
SET @sql = @sql + @colName + ' like ''%' + @key + '%'')) begin select * from '
set @sql = @sql + @tabName + ' where ' + @colName + ' like ''%' + @key + '%'';select '''
+ @tabName + ''' as TableName end'
set @tsql = @tsql + @sql + ';'
FETCH NEXT from colCursor INTO @colName
END
exec(@tsql)
CLOSE colCursor
DEALLOCATE colCursor
FETCH NEXT from tabCursor INTO @tabName
END
CLOSE tabCursor
DEALLOCATE tabCursor


 

Org_Id                                                                                                                                                                                                                                                             EmployeeId  EmployeeName                                       Title
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------- -------------------------------------------------- --------------------------------------------------
0x68                                                                                                                                                                                                                                                               10002       李四                                                 CFO

(1 行受影响)

TableName
---------
Employees

(1 行受影响)


 

 

 


 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值