展开全部
CREATEPROCEDUREFindString(@ValueVARCHAR(1024))AS
BEGIN
SETNOCOUNTON;
DECLARE@SQLVARCHAR(6000)
DECLARE@TableVARCHAR(100)
DECLARE@ColumnVARCHAR(100)
CREATETABLE#T(TableNameVARCHAR(100),ColumnNameVARCHAR(100))
DECLARETABLESCURSORFORSELECTO.name,C.nameFROMsys.syscolumnsCINNERJOINsys.sysobjectsOONC.id=O.id
WHEREO.type='U'ANDC.xtypeIN(167,175,231,239)ORDERBYO.name,C.name
OPENTABLES
FETCHNEXTFROMTABLESINTO@Table,@Column
WHILE@@FETCH_STATUS=0
BEGIN
SET@SQL='IFEXISTS(SELECTNULLFROM['+@Table+']WHERERTRIM(LTRIM(['+@Column+']))LIKE''%'+@Value+'%'')'
SET@SQL=@SQL+'INSERTINTO#TVALUES('''+@Table+''','''+@Column+''')'
EXEC(@SQL)
FETCHNEXTFROMTABLESINTO@Table,@Column
END
CLOSETABLES
DEALLOCATETABLES
SELECT*FROM#T
DROPTABLE#T
End
调用方法:
EXEC FindString '查找的32313133353236313431303231363533e78988e69d8331333337373733字符串'