Je me connecte à une base de données SQL à l'aide d'un automate et doit renvoyer une liste de valeurs. Malheureusement, l'automate a une mémoire limitée et ne peut récupérer qu'environ 5 000 valeurs à la fois, mais la base de données peut contenir jusqu'à 10 000 valeurs. En tant que tel, j'ai besoin d'un moyen de récupérer ces valeurs en 2 opérations. Malheureusement l'automate est limité dans la requête qu'il peut effectuer, et est limité aux seules commandes SELECT et WHERE, donc je ne peux pas utiliser LIMIT ou TOP ou quelque chose comme ça.Numérotation de lignes dans une vue
Existe-t-il un moyen de créer une vue et de numéroter automatiquement tous les champs de cette vue? Je pourrais alors interroger tous les dossiers < 5,000, suivi par une deuxième requête de < 10,000 etc?
Malheureusement, il semble que les vues ne prennent pas en charge la colonne d'identité, cela devrait donc être fait manuellement.
Quelqu'un a-t-il des suggestions? Ma seule option réaliste au moment semble être de créer 2 vues, l'une avec le premier 5 000 et 1 avec le 5000 suivant ...
J'utilise SQL Server 2000 si cela fait une différence ...
Merci, Derek, alors que ça marche et que ça compte, ça prend 20 secondes pour compter 100 enregistrements sur ma base de données de test, donc ça ne marchera pas très bien avec 10 000 lignes! J'ai à la place trouvé un moyen de numéroter les premiers 5 000 avec un 1, et le second 5 000 avec un 2, nous pouvons alors interroger à la place. –
Le code mentionné ci-dessus est la suivante: 'SELECT TOP (5000) BCode, SAPCode, 1 groupe no DE dbo.DB union SELECT TOP (10000) BCode, SAPCode, 2 comme groupe no dbo.DB à partir de p O WH ID D'IDENTIFICATION (SÉLECTIONNER TOP (5000) ID FROM dbo.DB) ' –
Je suis content que vous ayez trouvé une solution - vous pouvez l'afficher en tant que" Réponse "distincte et accepter votre propre réponse afin que quiconque rencontrant ce problème verra votre solution finale. –