Combien de caractères peut un Serveur SQL instruction SQL?
Quelle est la longueur maximale d'une instruction SQL dans SQL Server? Cette longueur dépend de la version de SQL Server?
Par exemple, dans
DECLARE @SQLStatement NVARCHAR(MAX) = N'Something'
EXEC(@SQLStatement)
la @SQLStatement
est autorisé à X caractères. Qu'est-ce que X?
Autant que vous en avez besoin?
Cela dépend de ce que l'instruction SQL est... ou peut-être que je ne suis pas la compréhension de cette question
Je suppose que nombre maximum? Ne prenez pas de commentaires ci-dessus trop au sérieux...
Cela dépend de ce que l'instruction SQL est... ou peut-être que je ne suis pas la compréhension de cette question
Je suppose que nombre maximum? Ne prenez pas de commentaires ci-dessus trop au sérieux...
SELECT LEN(@SQL)
OriginalL'auteur Soheil Farahani | 2012-02-08
Vous devez vous connecter pour publier un commentaire.
Il va de 65 536 fois votre taille de paquet réseau, selon la documentation
Semble que c'est la même chose, au moins depuis SQL Server 2005
oui, la question n'était pas tout à fait clair, donc je pense que la plupart des gens n'ont pas compris qu'il a une question sur la taille de requête maximale (du moins c'est ce que je pense, il demande)
merci les gars pour la compréhension de mon Q.
Alors, quel est le Maximum de la taille de requête?
dépend de votre taille de paquet réseau. Pour l'ethernet, 1500 octets est typique, ce qui vous donne un max de taille de requête de mieux que 90 MO. Donc assez énorme.
OriginalL'auteur
Mot à mot de la documentation:
Ce n'est pas clair, mais ce qui importe quelle personne saine d'esprit aurait immédiatement la question, est-ce que signifie "Taille de Paquet Réseau"?
Taille de paquet réseau, dans ce cas, comme prévu, ne pas reportez-vous à la taille physique, car cela casserait l'abstraction de la fin à la fin de la garantie de livraison streaming protocol (TCP), mais renvoie plutôt à la taille de paquet dans le contexte de la Tableaux de Flux de Données de protocole utilisé par SQL Server pour la communication. Selon la documentation, la valeur par défaut de la taille d'un paquet TDS est 4KO.
OriginalL'auteur
Si votre variable est définie comme
NVARCHAR(MAX)
alors il peut être de 2 go en taille (rappelez-vous queNVARCHAR
utilise deux octets pour chaque caractère, la compression de côté). Si vous vous approchez n'importe où près de cette taille, cependant, la durée de votre instruction SQL est probablement le cadet de vos soucis.Avez-vous l'essayer? Encore une fois, si votre instruction SQL se rapproche de cette taille, il ya plus de problèmes à mon humble avis.
-> oui, vous avez raison.
OriginalL'auteur
La longueur d'une instruction SQL devrait être aussi court que possible, tout en conservant l'homme de la compréhension.
Depuis l'analyse et la compilation de l'instruction SQL dans un travail réel pour le moteur de base de données est très rapide, la longueur de l'instruction n'a pas vraiment d'importance à l'analyseur. De plus grande importance, en particulier pour la main-construit instruction SQL, est que l'homme peut maintenir qu'énoncé dans l'avenir.
C'est une fausse déclaration. Il y a beaucoup de cas d'utilisation pour des requêtes générées dynamiquement. 'homme de la compréhension" est assez subjectif, mais nous pouvons présumer de ce que vous entendez est comprise dans un couple de minutes ou moins, qui, encore une fois, n'est pas nécessaire. Je pense que votre commentaire est probablement en ne considérant statique ou à proximité de statique des requêtes. La maintenabilité est toujours un bon compte pour, mais il y a plus de contexte à prendre en compte.
OriginalL'auteur