Existe-t-il une CONSTANTE dans SQL Server à laquelle je peux faire reference dans différentes procédures stockées dans ma database?

J'ai ce code qui fait partie d'une procédure stockée. J'ai d'autres procédures stockées avec des extraits similaires.

INSERT INTO dbo.UserTest ( AdminTestId, Sequence, TestStatusId ) VALUES ( @AdminTestId, @SEQ , 1 ) 

Maintenant, je viens de réaliser que la valeur de 1 devrait être un 2 pour le testStatusId. Je continue à faire ces erreurs que j'oublie quel numéro est lequel.

Y a-t-il un moyen que je puisse avoir une constante que je pourrais referencer et qui serait placée à un endroit en dehors de toutes les procédures stockées?

Idéalement, ce que j'aimerais faire, c'est quelque chose comme ça. Mais je ne veux pas déclarer la valeur de TestStatusId.Started en haut de chaque procédure stockée.

  INSERT INTO dbo.UserTest ( AdminTestId, Sequence, TestStatusId ) VALUES ( @AdminTestId, @SEQ , @TestStatsusId.Started ) 

Il n'y a pas de concept de constante dans le context d'une valeur globale pouvant être référencée dans vos procédures stockées. Vous pouvez déclarer des variables (bien que non constantes) dans vos procédures stockées: DECLARE @variableName <VariableType> = <Value> , mais pas en dehors d'elles.

La meilleure option pour avoir access à une valeur sur plusieurs objects de database consiste à créer une table contenant vos valeurs globales. Dans votre procédure stockée, vous pouvez ensuite utiliser une SELECT pour extraire la valeur pour vous ou créer une fonction définie par l'user qui récupère une valeur par une key (par exemple, par son nom).

Il n'y a pas de 'constantes' dans le sens typique de la programmation, mais vous travaillez dans une database; vos tables sont remplies de constantes. Si c'est un problème pour vous, vous pourriez avoir une table qui a l'identifiant numérique dans une colonne et une représentation de mot-key dans l'autre. Vous pouvez également avoir une fonction qui effectue cette conversion pour vous et l'appeler dans la procédure stockée.