I am trying to output a string plus certain values I have obtained from the database. For example, in Microsoft Server 2008, the following ran the way I wanted it to:
SELECT
'SELECT c.name COLLATE SQL_Latin1_General_CP1_CI_AS colName, o.name COLLATE SQL_Latin1_General_CP1_CI_AS tableName, '''
+ NAME + ''' db FROM ' + NAME
+ '.sys.all_columns as c INNER JOIN ' + NAME
+
'.sys.all_objects o ON c.object_id = o.object_id WHERE c.name like ''%password%'' AND type = ''U'' UNION'
FROM SYS.DATABASES
Returning the following:
SELECT c.NAME COLLATE SQL_LATIN1_GENERAL_CP1_CI_AS colName,
o.NAME COLLATE SQL_LATIN1_GENERAL_CP1_CI_AS tableName,
'master' db
FROM MASTER.SYS.ALL_COLUMNS AS c
INNER JOIN MASTER.SYS.ALL_OBJECTS o
ON c.OBJECT_ID = o.OBJECT_ID
WHERE c.NAME LIKE '%password%'
AND TYPE = 'U'
UNION
SELECT c.NAME COLLATE SQL_LATIN1_GENERAL_CP1_CI_AS colName,
o.NAME COLLATE SQL_LATIN1_GENERAL_CP1_CI_AS tableName,
'tempdb' db
FROM TEMPDB.SYS.ALL_COLUMNS AS c
INNER JOIN TEMPDB.SYS.ALL_OBJECTS o
ON c.OBJECT_ID = o.OBJECT_ID
WHERE c.NAME LIKE '%password%'
AND TYPE = 'U'
UNION
But when I try a similar thing in MySQL:
SELECT
'SELECT c.name COLLATE SQL_Latin1_General_CP1_CI_AS colName, o.name COLLATE SQL_Latin1_General_CP1_CI_AS tableName, '''
+ DB + ''' db FROM ' + DB
+ '.sys.all_columns as c INNER JOIN ' + DB
+
'.sys.all_objects o ON c.object_id = o.object_id WHERE c.name like ''%password%'' AND type = ''U'' UNION'
FROM DB
It returns only blank lines of the records that I want. Can anyone help?
In MySQL you need the
concatfunction in instead of the+operator: