Je cherche à refactoriser la requête ci-dessous pour quelque chose de plus lisible et modifiable. La première moitié est identique à la deuxième, à l'exception de la base de données interrogée à partir de (noms de table sont les mêmes que.)Comment écrivez-vous cette requête?
SELECT
Column 1 AS c1,
...
Column N AS cN
FROM
database1.dbo.Table1
UNION
SELECT
'Some String' as c1,
...
NULL as cN
FROM
database1.dbo.Table2
UNION
SELECT
Column 1 AS c1,
...
Column N AS cN
FROM
database2.dbo.Table1
UNION
SELECT
'Some String' as c1,
...
NULL as cN
FROM
database2.dbo.Table2
Cette requête est la définition de DRY et me demande à être réécrite mais je ne sais pas comment!
EDIT: Nous ne pouvons pas utiliser linq et nous désirons des résultats distincts; Je cherche à rendre la requête plus petite dans la taille de fichier physique, pas dans les résultats retournés.
EDIT: La base de données que j'interroge est une base de données ERP propriétaire. Restructurer ce n'est pas une option.
Est-ce que vous essayez essentiellement d'exécuter la même requête sur les tables de noms différents où un ou plusieurs champs peuvent exister dans certains les tables mais en grande partie tous les autres champs sont communs à toutes les tables et ensuite se syndiquer [est-ce un mot?] ensemble? – BenAlabaster
@balabaster - Oui, c'est exactement ce que je fais. –