Vous allez vouloir regarder les SysObjects et tables système SYSCOLUMN, très pratique pour ce genre de chose.
Voici un exemple qui parcourt toutes les tables pour la valeur entière 500. Notez que si vous souhaitez rechercher un autre type de colonne, vous devrez modifier le type xtype. Il ne s'agit pas d'un exemple complet de comparaison entre les colonnes de ma base de données et les autres colonnes. Cependant, il devrait vous donner l'idée de base et, espérons-le, vous aider à démarrer.
En outre, j'utilise une table de mémoire pour cet exemple. Si votre base de données est grande, vous voudrez utiliser une table temporaire et un curseur probable.
Ceci retourne une seule colonne d'enregistrements avec la valeur de « Tableau - ColumnName = Recherche Valeur »
-- declare my search table
DECLARE @Columns TABLE (TableName varchar(50), ColumnName varchar(50))
DECLARE @Results TABLE (Results VARCHAR(255))
DECLARE @SearchData INT
SET @SearchData = 500
DECLARE @TableName VARCHAR(50)
DECLARE @ColumnName VARCHAR(50)
DECLARE @Command VARCHAR(1024)
-- Find all tables with an integer column
Insert INTO @Columns
Select sysobjects.[Name] as TableName, syscolumns.[Name] as ColumnName
from dbo.sysobjects INNER Join dbo.syscolumns ON dbo.sysobjects.id = dbo.syscolumns.id
Where sysobjects.xtype = 'U' and syscolumns.xtype = 56 Order By TableName, ColumnName
--Loop!
WHILE NOT (Select TOP 1 TableName from @Columns) IS NULL
BEGIN
Select TOP 1 @TableName = TableName, @ColumnName = ColumnName from @Columns
SET @Command = 'Select ''' + @TableName + ' - ' + @ColumnName + ' = ' + CAST(@SearchData as varchar(32)) + ''' FROM ' + @TableName + ' WHERE ' + @ColumnName + ' = ' + CAST(@SearchData as VARCHAR(32))
Insert INTO @Results
exec(@Command)
Delete from @Columns where TableName = @TableName AND ColumnName = @ColumnName
END
-- Export all results
Select * from @Results
est l'autre base de données locale ou à distance? Est-ce SQL Server aussi bien? Quelles versions ... –
Les tables ont toutes été importées dans la même base de données. C'est sur MSSQL Server 2008. –
Vous aurez besoin de fournir plus d'informations pour obtenir de l'aide sur celui-ci. SQL n'est pas une boîte magique qui peut lire dans votre esprit, donc la réponse est très probablement non. – JohnFx