• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
melvin729
博客园    首页    新随笔    联系   管理    订阅  订阅
查询一条数据在哪张表里的哪个字段
 
CREATE PROCEDURE [dbo].[SP_FindValueInDB]
 
(
 
@value VARCHAR(1024)
 
)
 
AS
 
BEGIN
 
SET NOCOUNT ON;
 
DECLARE @sql VARCHAR(1024)
 
DECLARE @table VARCHAR(64)
 
DECLARE @column VARCHAR(64)
 
CREATE TABLE #t (
 
tablename VARCHAR(64),
 
columnname VARCHAR(64)
 
)
 
DECLARE TABLES CURSOR FOR
 
SELECT o.name, c.name FROM syscolumns c
 
INNER JOIN sysobjects o ON c.id = o.id
 
WHERE o.type = 'U' AND c.xtype IN (167, 175, 231, 239)
 
ORDER BY o.name, c.name
 
OPEN TABLES
 
FETCH NEXT FROM TABLES
 
INTO @table, @column
 
WHILE @@FETCH_STATUS = 0
 
BEGIN
 
SET @sql = 'IF EXISTS(SELECT NULL FROM [' + @table + '] '
 
SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) LIKE ''%' + @value + '%'') '
 
SET @sql = @sql + 'INSERT INTO #t VALUES (''' + @table + ''', '''
 
SET @sql = @sql + @column + ''')'
 
EXEC(@sql)
 
FETCH NEXT FROM TABLES
 
INTO @table, @column
 
END
 
CLOSE TABLES
 
DEALLOCATE TABLES
 
SELECT * FROM #t
 
DROP TABLE #t

 

 

posted on 2022-03-25 13:01  melvin489  阅读(49)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3