Ajouter une colonne d'identité à une vue dans SQL Server 2008
C'est mon point de vue:
Create View [MyView] as
(
Select col1, col2, col3 From Table1
UnionAll
Select col1, col2, col3 From Table2
)
J'ai besoin d'ajouter une nouvelle colonne nommée Id
et j'ai besoin de cette colonne, être unique, donc je pense que pour ajouter une nouvelle colonne de pièce d'identité. Je me dois de mentionner ce point de vue a donné un grand de données, j'ai donc besoin d'un moyen avec de bonnes performances, Et aussi j'utilise deux requête select avec l'union de tous je pense que cela pourrait être compliqué alors, quelle est votre suggestion?
source d'informationauteur Saeid
Vous devez vous connecter pour publier un commentaire.
Utiliser le
ROW_NUMBER()
fonction dans SQL Server 2008.La vue est juste une requête stockée qui ne contient pas les données elles-mêmes de sorte que vous pouvez ajouter un stable ID. Si vous avez besoin d'un id pour d'autres fins, comme la pagination par exemple, vous pouvez faire quelque chose comme ceci:
Il n'y a aucune garantie que le nombre de lignes retournées par une requête à l'aide de la fonction ROW_NUMBER() sera commandé exactement le même à chaque exécution, à moins que les conditions suivantes sont remplies:
Il y est un problème secondaire ici, avec ce qui est un point de vue. Commande Par la ne travaillent pas toujours dans les vues (long-temps sql bug). Ignorant la fonction row_number() pour un deuxième: