J'utilise SQL Server 2008
J'utilise une contrainte de contrôle sur plusieurs colonnes dans la même table pour tenter de valider la saisie de données.
Je reçois une erreur:
Vérification de la colonne Contrainte pour la colonne 'AAAA' Références Une autre colonne, Table 'XXXX'.
Vérifiez que la contrainte ne fonctionne pas de cette manière.
Tout autre moyen de la mettre en œuvre sur une seule table sans utiliser FK?
Merci
Voici un exemple de mon code
CREATE TABLE dbo.Test
(
EffectiveStartDate dateTime2(2) NOT NULL,
EffectiveEndDate dateTime2(2) NOT NULL
CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate > EffectiveStartDate),
);
Oui, définissez la contrainte de contrôle au niveau Table niveau
CREATE TABLE foo (
bar int NOT NULL,
fred varchar(50) NOT NULL,
CONSTRAINT CK_foo_stuff CHECK (bar = 1 AND fred ='fish')
)
Vous la déclarez en ligne sous forme de contrainte colonne
...
fred varchar(50) NOT NULL CONSTRAINT CK_foo_fred CHECK (...)
...
Éditer, plus facile à poster que de décrire. Correction de vos virgules.
CREATE TABLE dbo.Test
(
EffectiveStartDate dateTime2(2) NOT NULL,
EffectiveEndDate dateTime2(2) NOT NULL, --need comma
CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate > EffectiveStartDate) --no comma
);
Bien sûr, la question reste-t-elle à l'aide d'une contrainte de contrôle dans laquelle il devrait être une contrainte FK ...?
Vous pouvez simplement appliquer votre validation dans une gâchette sur la table, notamment que l'opération sera renvoyée si le chèque a échoué.