create proc sp_findtb_field(
@w nvarchar(4000),
@t nvarchar(50)='s'
)
as
begin
declare @num int,
@sqls nvarchar(4000),@i int=1,@count int=0,
@tbname nvarchar(4000),@field nvarchar(4000)
SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,ROW_NUMBER()over(order by TABLE_NAME,COLUMN_NAME) rownum
into #tmp
FROM INFORMATION_SCHEMA.columns where 1= case when @t='s' and DATA_TYPE in ('varchar','char','ntext','nvarchar','datetime') then 1
when @t='n' and DATA_TYPE in ('int','smallint','numeric') then 1 else 0 end
select @count=max(rownum) from #tmp
while @i<=@count
begin
select @tbname=TABLE_SCHEMA+'.'+TABLE_NAME,@field=COLUMN_NAME from #tmp wh