Je dois créer une table temporaire pour les besoins de pagination. Je sélectionnerais tous les enregistrements dans une table temporaire, puis j'effectuerais un traitement ultérieur avec celle-ci.Table SQL - Temp: Stockage de toutes les colonnes dans la table temporaire par rapport à la clé primaire
Je me demande qui de ce qui suit est une meilleure approche:
1) Sélectionner toutes les colonnes de ma table primaire dans la table temporaire et ensuite être capable de sélectionner les lignes que je aurais besoin
OU
2) Sélectionnez uniquement la clé primaire de la table primaire dans la table temporaire, puis rejoignez la table primaire plus tard?
Y a-t-il une considération de taille lorsque l'on travaille avec l'approche 1 et l'approche 2?
[EDIT]
Je demande parce que je l'aurais fait la première approche, mais regardant PROCEDURE [dbo]. [Aspnet_Membership_FindUsersByName], qui a été inclus avec ASP.NET adhésion, ils font approche 2
[EDIT2]
Avec personnes sans accès à la procédure stockée:
-- Insert into our temp table
INSERT INTO #PageIndexForUsers (UserId)
SELECT u.UserId
FROM dbo.aspnet_Users u, dbo.aspnet_Membership m
WHERE u.ApplicationId = @ApplicationId AND m.UserId = u.UserId AND u.LoweredUserName LIKE LOWER(@UserNameToMatch)
ORDER BY u.UserName
SELECT u.UserName, m.Email, m.PasswordQuestion, m.Comment, m.IsApproved,
m.CreateDate,
m.LastLoginDate,
u.LastActivityDate,
m.LastPasswordChangedDate,
u.UserId, m.IsLockedOut,
m.LastLockoutDate
FROM dbo.aspnet_Membership m, dbo.aspnet_Users u, #PageIndexForUsers p
WHERE u.UserId = p.UserId AND u.UserId = m.UserId AND
p.IndexId >= @PageLowerBound AND p.IndexId <= @PageUpperBound
ORDER BY u.UserName
Je l'ai inclus dans la question ci-dessus – TimLeung