是这样的,用的是MS SQL08R2,其中有十多个库,有个值“呼吸机”,不知道存在哪个库的哪张表里的哪个字段,怎么把它搞出来?

解决方案 »

  1.   

    Create  PROC  getFieldAll(@t VARCHAR(100),@v VARCHAR(20), @f VARCHAR(1000) OUT )
    AS 
    BEGIN    
        DECLARE @name VARCHAR(40)
        DECLARE @S NVARCHAR(1000),@C INT     
        SET @f='呼吸机'
        
        EXEC('declare cur cursor for select name from syscolumns where id=object_id('''+@t+''') and  xtype in(SELECT xtype FROM systypes s2 WHERE name in(''char'',''varchar'',''nchar'',''nvarchar''))')
        
        OPEN cur 
        FETCH NEXT FROM cur INTO @name
        WHILE @@FETCH_STATUS=0
        BEGIN
            SET @S='select @s=count(1) from '+@t+' where ['+@name +'] like ''%'+@v+'%'''
            EXEC sp_executesql @S,N'@s int out',@C OUT 
            IF @C>0
                SET @f=@f+@name+','        
            FETCH NEXT FROM cur INTO @name
        END 
        CLOSE cur
        DEALLOCATE cur 
        RETURN 
    END