| ALTER PROCEDURE [dbo].[FindKey] |
| ( |
| @value VARCHAR(1024) |
| ) |
| AS |
| BEGIN |
| |
| |
| SET NOCOUNT ON; |
| DECLARE @sql VARCHAR(1024) |
| DECLARE @table VARCHAR(64) |
| DECLARE @column VARCHAR(64) |
| |
| CREATE TABLE |
| tablename VARCHAR(64), |
| columnname VARCHAR(64) |
| ) |
| |
| DECLARE TABLES CURSOR |
| FOR |
| |
| SELECT o.name, c.name |
| FROM syscolumns c |
| INNER JOIN sysobjects o ON c.id = o.id |
| WHERE o.type = 'U' AND c.xtype IN (167, 175, 231, 239) |
| ORDER BY o.name, c.name |
| |
| OPEN TABLES |
| |
| FETCH NEXT FROM TABLES |
| INTO @table, @column |
| |
| WHILE @@FETCH_STATUS = 0 |
| BEGIN |
| SET @sql = 'IF EXISTS(SELECT NULL FROM [' + @table + '] ' |
| SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) LIKE ''%' + @value + '%'') ' |
| SET @sql = @sql + 'INSERT INTO #t VALUES (''' + @table + ''', ''' |
| SET @sql = @sql + @column + ''')' |
| |
| EXEC(@sql) |
| |
| FETCH NEXT FROM TABLES |
| INTO @table, @column |
| END |
| |
| CLOSE TABLES |
| DEALLOCATE TABLES |
| |
| SELECT * |
| FROM |
| |
| DROP TABLE |
| |
| END |
| DECLARE @return_value int |
| |
| EXEC @return_value = [dbo].[FindKey] |
| @value = N'湖南省长沙市岳麓区望城坡街道金星南路辅路达美·涧溪山' |
| |
| SELECT 'Return Value' = @return_value |
| |
| GO |