Comment puis-je exécuter une très longue instruction sql dynamique?
Je me souviens de retour dans la journée, je voudrais faire un ensemble de wack de nvarchar(4000)
vars, vérifiez la longueur d'eux comme ils ont grandi, les mettre dehors quand ils ont rempli et puis concaténer la pagaille ensemble pour l'appel exec. Je me demandais si il y avait un moyen plus facile de le faire.
Merci!
Edit:
Exemple de Code, montre-moi le vissage jusqu'à l'instruction de cas
DECLARE @sql NVARCHAR(MAX)
SELECT @sql = CAST(N'SELECT ' AS NVARCHAR(MAX))
DECLARE @Index INT
SELECT @Index = 0
WHILE (@Index < 1000)
BEGIN
SELECT @sql = CAST(@sql AS NVARCHAR(MAX)) + CAST(N' ' AS NVARCHAR(MAX)) + CAST( CASE @Index WHEN 1 THEN N' ' END AS NVARCHAR(MAX))
SELECT @Index = @Index + 1
END
SELECT @sql = CAST(@sql AS NVARCHAR(MAX)) + CAST(1 AS NVARCHAR(MAX))
SELECT LEN(@sql)
EXECUTE sp_executesql @sql
Je ne pourrais pas comprendre la question, mais pourquoi ne pas utiliser de type nvarchar(MAX) variable(s) - (SQL 2005 et jusqu')?
Quelle est la question? SQL dynamique moyens de concaténation de chaîne...
ajouter votre commentaire comme une réponse. Spot sur
quelqu'un me battre pour elle 🙂
Quelle est la question? SQL dynamique moyens de concaténation de chaîne...
ajouter votre commentaire comme une réponse. Spot sur
quelqu'un me battre pour elle 🙂
OriginalL'auteur Biff MaGriff | 2010-07-06
Vous devez vous connecter pour publier un commentaire.
sp_executesql
accepte un paramètre de type NVARCHAR(MAX) qui peut atteindre jusqu'à 2 go. Il n'est pas nécessaire pour n'importe quel truc, depuis le type NVARCHAR(MAX) prend en charge toutes les opérations de la chaîne (concaténation, remplacement, etc):Juste être conscient de certaines des fonctions de chaîne: DECLARE @x de type nvarchar(max) SET @x = RÉPLIQUER ("a", 10000) SÉLECTIONNEZ LEN(@x) -- 8000 -- doit être DÉFINIE @x = RÉPLIQUER(CAST('a' de type nvarchar(max)),10000)
J'ai toujours pas mon type NVARCHAR(MAX), var ci-dessus 4k caractères. 🙁
vous devez être tronquant quelque part. poster votre code.
Argh! Un exposé a été de me gâcher! Merci encore de Remus.
OriginalL'auteur Remus Rusanu
EXEC (@YourSQL)
OUsp_exectesql
si vous souhaitez continuer à construire sur votre SQL dynamique et d'exécution.OriginalL'auteur ajdams