Bonjour
Quelle est la taille max en octets d'une requête SQL ?
Merci de vos réponses.
Version imprimable
Bonjour
Quelle est la taille max en octets d'une requête SQL ?
Merci de vos réponses.
Bonjour,
Si l'on se refaire à la BOL la taille max d'une requête se calcule de la façon suivante :
65,536 X [Network Packet Size (4KB par défaut)]
++
Dans une procédure, lLa taille maximale d'une procédure stockée Transact-SQL étant limitée à 128 Mo de code, vous ne pourrez dépasser cette limite.
Mais en pratique, d'autres limites vont intervenir avant :
Par défaut, la limite de longueur pour des données textuelles renvoyées avec une instruction SELECT est de 4 Ko.
une ligne de table de travail intermédiaire ne peut excéder les 8060 octets.
Le nombre de colonnes retournées par un select ne peut dépasser 4 096
A +
Ces limites sont-elles les mêmes quelque soit la version de SQL Server ?Citation:
Par défaut, la limite de longueur pour des données textuelles renvoyées avec une instruction SELECT est de 4 Ko.
une ligne de table de travail intermédiaire ne peut excéder les 8060 octets.
Le nombre de colonnes retournées par un select ne peut dépasser 4 096
Bonjour,
En fait, si je pose la question, c'est que je veux justement enregistrer une requete dans une table.
Donc un nvarchar(65536) peut faire l'affaire voire même un nvarchar(65536 * (4 au minimum )), non ?
Merci d'avance.
Un varchar ou nvarchar ne fait pas plus de 4000 caractères!
http://msdn.microsoft.com/en-us/library/ms186939.aspx
Ah non, depuis la version 2005 il est possible de faire des VARCHAR de n'importe quelle taille à condition de ne pas dépasser deux milliards d'octets....
Seul inconvénient, ils seront stockées en row overflow ce qui est catastrophique pour les perf....
Choisissez le type NVARCHAR(max).
A +
Donc un text(65536) peut faire aussi l'affaire voire même un text(65536 * (4 au minimum )), non ?
Préférez un NVARCHAR(max) !
A +
non, car c'est pas conservé dans la table, mais à part contrairement à un VARCHAR borné !
A +
Bonjour,
Je voudrais savoir s'il est possible de stocker une requete dans une variable ( nvarchar donc, à priori ... ), de faire des manipulations sur cette variable ( concaténation de conditions par exemple ) et de lancer l'exécution de cette variable/requête ?
Le but étant de créer une procédure stockée qui accepte en entrée des paramètres que l'on ajoute à une requête en fonction de leur valeur. :calim2:
version : SQL2000.
Merci de vos réponses par avance.
Effectivement,
J'ai trouvé 5 mn après avoir posé la question.:oops:
Merci quand même.
Pour ceux que ça intéresse :
Code:
1
2 @requete='select ...' exec (@requete ).