2012-12-04 4 views
1

Je n'ai pas beaucoup d'expérience avec SQL Server et je suis assez perdu quand il s'agit de quelque chose de plus avancé que les simples instructions INSERT/SELECT.Comment faire pour créer/créer une table de règles avec des critères dans SQL Server 2008

Ma tâche est de créer une table qui contient des 'critères' (règles) pour d'autres tables dans la même base de données. Je veux dire que nous avons une table Employee, une table etc. Salary je dois faire quelques règles entre la table et EmployeeSalary tableau par ses valeurs, à savoir si Employee = John et Salary = 2000 puis faire 1 critères, si Employee = Steve et Salary = 3000 puis faire 2 critères.

J'ai créé une table appelée Rules:

RuleID Criteria 
--------------------------------------------------  
1   Employee = John and Salary = 2000 
2   Employee = Steve and Salary = 3000** 

Ma question: Comme mentionné ci-dessus est bonne façon de créer la table 'critères'? (peut-être j'ai 50 conditions différentes ... Serait-il correct si je crée une table avec tous les conditionnés comme mentionné ci-dessus?) S'il vous plaît aviser.

Je suis désolé Si je ne suis pas en mesure de l'expliquer correctement ou de poser une question de base.

J'apprécierais n'importe quelle aide dans ceci. Merci beaucoup à l'avance ..

+0

La clé concevoir un ensemble de tableaux, c'est comprendre comment ils seront utilisés. Comment les règles sont-elles utilisées? Sont-ils pour les déclarations SQL? Juste pour montrer aux utilisateurs? Code dans une autre langue? –

+0

Merci pour votre réponse @GordonLinoff ... – Joy1979

+0

@GordonLinoff Ce sont pour les instructions SQL et plus tard seront utilisés dans VB.Net. lorsque le formulaire remplit (temps d'exécution), les critères doivent s'exécuter lorsque l'utilisateur sélectionne une sélection quelconque (c'est-à-dire si l'utilisateur sélectionne Nom de l'employé = john et sélection Salaire = 2000 puis par lui-même l'ID de la règle 1 sera exécuté). Excuses si je ne suis pas capable de le préciser. – Joy1979

Répondre

0

Nous avons créé un moteur de règles efficace qui notifie le (s) utilisateur (s) approprié (s) pour une règle donnée. Nos colonnes sont les suivantes: RuleID, RuleName, SequenceNum, IsActiveFlag, RuleRunDays, DataSteward, CarbonCopyRecipients, NotificationLevel, RuleSQL, NotificationSubject, NotificationText, HTMLFlag

La clé est d'avoir une colonne qui est une instruction SQL exécutable valide (comme RuleSQL au dessus). Voici un exemple de valeur que vous pourriez ajouter dans la colonne RuleSQL:

SELECT ErrorMessage = 'Le salaire ne peut pas être nul pour les employés actifs.' , e.EmployeeName, es.Salary, ... DE EmployeeSalary es REJOIGNEZ employé e ON e.EmployeeId = es.EmployeeId OÙ es.Salary EST NULLE ET e.Status = 'Active'

Questions connexes