Bonjour,
Je me pose la question suivante.
Pourquoi SSMS propose-t-il ce code lorsqu'on lui demande de générer le script de génération d'un objet ex table
Ce qui me chiffonne c'est l'utilisation du object_id. Je "suppose" que cette fonction va rechercher l'information dans la table sys.objects pour retourner l'identifiant unique. Alors dans ce cas pourquoi refaire une jointure sur cette même table. Quand je regarde la requête ci-dessus j'interprète ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MaTable]') AND type in (N'U')) DROP TABLE [dbo].[MaTable]
Je vais chercher l'information et la comparer au même endroit où j'ai été le trouver .
Alors que le code ci-dessous suffit normalement.
Y aurait-il une réelle différence entre la source retournée dans object_id et la table sys.objects ou est-ce bien dans cette même table que cette fonction va chercher l'identifiant unique et que c'est resté ainsi depuis x version sans que personne se pose la question ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IF OBJECT_ID(N'[dbo].[MaTable]',N'U') IS NOT NULL DROP TABLE [dbo].[MaTable]
Merci pour votre éclaircissement.
Partager