13719654321 发表于 2017-12-14 13:30:25

SQL Server 查询某个字段值在哪张表的哪个字段

  我要查找值为‘WSCOL1525’的字段。
  declare @cloumns varchar(40)
  declare @tablename varchar(40)
  declare @str varchar(40)
  declare @counts int
  declare @sql nvarchar(2000)
  declare MyCursor Cursor For
  Select a.name as Columns, b.name as TableName from syscolumns a,sysobjects b,systypes c
  where a.id = b.id
  and b.type = 'U'
  and a.xtype=c.xtype
  and c.name like '%char%'
  set @str='
  declare @cloumns varchar(40)
  declare @tablename varchar(40)
  declare @str varchar(40)
  declare @counts int
  declare @sql nvarchar(2000)
  declare MyCursor Cursor For
  Select a.name as Columns, b.name as TableName from syscolumns a,sysobjects b,systypes c
  where a.id = b.id
  and b.type = 'U'
  and a.xtype=c.xtype
  and c.name like '%char%'
  set @str='WSCOL1525'
  Open MyCursor
  Fetch next From MyCursor Into @cloumns,@tablename
  While(@@Fetch_Status = 0)
  Begin
  set @sql='select@tmp_counts=count(*) from ' +@tablename+ ' where ' +@cloumns+' = ''' +@str+ ''''
  execute sp_executesql@sql,N'@tmp_counts int out',@counts out
  if @counts>0
  begin
  print '表名为:'+@tablename+',字段名为'+@cloumns
  end
  Fetch next From MyCursor Into @cloumns,@tablename
  End
  Close MyCursor
  Deallocate MyCursor
  '
  Open MyCursor
  Fetch next From MyCursor Into @cloumns,@tablename
  While(@@Fetch_Status = 0)
  Begin
  set @sql='select@tmp_counts=count(*) from ' +@tablename+ ' where ' +@cloumns+' = ''' +@str+ ''''
  execute sp_executesql@sql,N'@tmp_counts int out',@counts out
  if @counts>0
  begin
  print '表名为:'+@tablename+',字段名为'+@cloumns
  end
  Fetch next From MyCursor Into @cloumns,@tablename
  End
  Close MyCursor
  Deallocate MyCursor
  结果:
页: [1]
查看完整版本: SQL Server 查询某个字段值在哪张表的哪个字段