salve ragazzi questo è il codice che in sql fuziona perfettamente
praticamente mi restituisce una tabella in qui ci sono scritte i nomi del campo e della tabella di un database dove è presente la stringa 2102 ora dovrei fare la cosa in mysql
ma mi da numerosi errori sapete darmi una mano ?????
grazie in anticipo
codice:DECLARE @DATO varchar(100); SET @DATO='%2102%'; DECLARE @SQL varchar(500); DECLARE @SQL2 varchar(500); SET NOCOUNT ON DECLARE @TABLE_NAME varchar(50) DECLARE @COLUMN_NAME varchar(50) IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects WHERE ID = OBJECT_ID(N'[tempdb]..[#Temp]')) DROP TABLE #Temp; CREATE TABLE #Temp (Record int, Tabella nvarchar(100), Campo nvarchar(100), SQL nvarchar(500)); DECLARE view_cursor CURSOR FOR SELECT INFORMATION_SCHEMA.COLUMNS.TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS inner join INFORMATION_SCHEMA.TABLES on INFORMATION_SCHEMA.COLUMNS.TABLE_NAME=INFORMATION_SCHEMA.TABLES.TABLE_NAME WHERE DATA_TYPE like '%char' AND TABLE_TYPE='BASE TABLE'; OPEN view_cursor FETCH NEXT FROM view_cursor INTO @TABLE_NAME, @COLUMN_NAME WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @conteggio int; SET @SQL2='SELECT * FROM ['+@TABLE_NAME + '] WHERE ['+@COLUMN_NAME+'] like "'+@DATO+'"'; SET @SQL='DECLARE @conteggio int;SELECT @conteggio=Count(*) FROM ['+@TABLE_NAME + '] WHERE ['+@COLUMN_NAME+'] like '+ CHAR(39)+ @DATO + CHAR(39)+';INSERT INTO #Temp (Tabella, Campo, SQL, record) VALUES (' + CHAR(39)+@TABLE_NAME + CHAR(39)+',' + CHAR(39)+@COLUMN_NAME + CHAR(39)+','+CHAR(39)+@SQL2+''+CHAR(39)+', @conteggio);' EXEC(@SQL); FETCH NEXT FROM view_cursor INTO @TABLE_NAME, @COLUMN_NAME END UPDATE #Temp SET sql = REPLACE(SQL,'"',CHAR(39)); SELECT * from #Temp where record>0; DROP table #Temp CLOSE view_cursor DEALLOCATE view_cursor

Rispondi quotando