Je veux écrire une procédure de magasin, qui prend 4 paramètres et un paramètre doit être entré, afin de trouver le bon produit de la mettre à jour à partir de la lagière dans différentes conditions. Je ne sais pas, où est mon erreur. Lorsque j'exécute, je reçois une telle erreur
3 Réponses :
Comme si l'erreur vous indique, SQL Server ne prend pas en charge les paramètres Aussi, dans votre requête, retour à la question, cependant , si vous devez implémenter un paramètre NON NULL code>, sauf si vous utilisez des modules compilés de manière native. @productname! = null code> est jamais em> va être vrai. rien em> strong> est égal à, ou non égal à null code>, y compris fort> null code> null code>. null = null code> et null! = Null code> retourne "inconnu", lequel n'est pas faux, c'est plus important null code> est avec est null code> et n'est pas null code>. P> non null code> dans une procédure qui n'est pas compilé de manière native, vous devez le gérer dans la procédure. Si vous souhaitez causer une erreur, utilisez ensuite lancer code> et un message d'erreur personnalisé et numéro suivant: p>
LARN U B> @Patrick ... s'il vous plaît au moins épeler mon alias correctement. ;)
Vous pouvez l'essayer comme ci-dessous. Null et pas null ne prend pas en charge dans le paramètre de la procédure de stockage
Comme je l'explique dans ma propre réponse, cela ne va pas fonctionner. Ce Toujours B> Imprimer code> Le message "Vous devez entrer le nom du produit! ' Code>
Hey, merci pour votre réponse! Lorsque j'écris une telle déclaration EXEC DBO.UPDate_Lager 'haricots', 1,46; b>, cela ne met pas à jour rien! Pourriez-vous me guider avec la dernière étape également, s'il vous plaît?
Utiliser n'est pas null b> au lieu de ! = Null b>
Merci, maintenant, il a fonctionné mais il met à jour les mauvais champs, quand j'écris exec dbo.update_lager 'haricots', 1.46; b>, il met à jour le champ d'information dans les colonnes d'informations et lorsque j'écris EXEC DBO. Update_lager 'haricots', "sacs de 2 kg", 1,46; b>, il met toujours à jour le même champ dans la même colonne, mais pas d'autres champs d'autres colonnes.
Selon votre paramètre mentionné ci-dessus, il exécutera cette requête Mettre à jour ensemble Artikel Set Info = @info où ProduktBezeichnung = @productname B>
Vous pouvez essayer l'inverse. Vérifier le nom du produit est NULL.
productname info amount preis abcd xxx 10 5
FYI, il est recommandé que lancer code> est utilisé sur RAISError code> maintenant. Du Documentation : " "La déclaration RAISERROR B> n'honore pas SET XACT_ABORT B>. Les nouvelles applications doivent utiliser lancer b> au lieu de < B> Raiserror B>. I> "
Hey, merci beaucoup pour votre réponse. Travailler sur votre réponse .....