不知道 在数据库中的那张表要找一个 员工 所发出的信息 这个怎么找

解决方案 »

  1.   

    这个存储过程用于查找数据库是否存在某个值,但是最好从程序面去控制好业务流,这样跟踪才有意义。alter proc spFind_Column_In_DB
     (
      @type int,--类型:1为文字类型、2为数值类型
      @str nvarchar(100)--需要搜索的名字
     )
     as
      --创建临时表存放结果
      create table #tbl(PK int identity primary key ,tbl sysname,col sysname)
      declare @tbl nvarchar(300),@col sysname,@sql nvarchar(1000)
      if @type=1 
      begin
      declare curTable cursor fast_forward
      for 
      select '['+SCHEMA_NAME(SCHEMA_ID)+'].['+o.name+']' tableName,'['+c.name+']' columnName from sys.columns c inner join sys.objects o on c.object_id=o.object_id
      where o.type_desc='user_table' and user_type_id in (167,175,231,239,35,99)
       end
      else
      begin 
      declare curTable cursor fast_forward
      for 
      select '['+SCHEMA_NAME(SCHEMA_ID)+'].['+o.name+']' tableName,'['+c.name+']' columnName from sys.columns c inner join sys.objects o on c.object_id=o.object_id
      where o.type_desc='user_table' and user_type_id in (56,48,52,59,60,62,106,108,122)
      end
      open curtable
      fetch next from curtable into @tbl,@col
      while @@FETCH_STATUS=0
      begin
      set @sql='if exists (select * from '+@tbl+' where '
      if @type=1
      begin
      set @sql += @col + ' like ''%'+@str +'%'')'
      end
      else 
      begin
      set @sql +=@col + ' in ('+@str+'))'
      end
     
      set @sql += ' INSERT #TBL(tbl,col) VALUES('''+@tbl+''','''+@col+''')'
      --print @sql
      exec (@sql)
      fetch next from curtable into @tbl,@col
      end
      close curtable 
      deallocate curtable
      select * from #tbl