2016-04-12 11 views
-1

Wie würden Sie nur männliche (m) oder weibliche (f) Daten in ein Genderfeld importieren, so dass es nicht mit irgendwelchen möglichen externen Quelldaten in SQL oder SSIS?Importieren in Genderfeld in SQL/SSIS

+0

Ich würde eine Check-Einschränkung für das Feld erstellen. Dadurch wird verhindert, dass die Tabelle jemals Daten dieses Typs enthält. Wenn Ihr SSIS oder irgendetwas versucht, etwas anderes einzufügen, wird es einen Fehler –

+0

Vielen Dank, Nick. – daniness

Antwort

1

Sie können eine Spalte Einschränkung erstellen:

CREATE TABLE Persons 
(
Id int NOT NULL, 
LastName varchar(255), 
FirstName varchar(255), 
Gender varchar(1), 
CONSTRAINT chk_Gender CHECK (Gender ='m' or Gender='f') 
) 

Insert into Persons values(1,'smith', 'jane', 'f'); 
insert into Persons values(2,'smith', 'john', SUBSTRING('male', 1, 1)); 
/* this will fail 
INSERT INTO Persons values (3,'foo', 'bar', 'u'); 
*/ 
select * FROM Persons; 

Working Fiddle

+0

Danke, scottJustin5000. – daniness

1

Es ist trival eine Check-Einschränkung, so etwas wie hinzufügen:

CREATE TABLE #Test (
    GENDER CHAR(1) CONSTRAINT Constraint_Gender CHECK (GENDER IN ('A','B','C')) 
) 
INSERT INTO #Test VALUES ('A') 
INSERT INTO #Test VALUES ('D') 

(1 row(s) affected) 
Msg 547, Level 16, State 0, Line 9 
The INSERT statement conflicted with the CHECK constraint "Constraint_Gender". 

aber Sie wirklich nicht gerecht sollten binäre Geschlechter in einer ähnlichen Weise zu Facebook usw. https://www.facebook.com/facebookdiversity/posts/774221582674346 (daher A, B, C in meinem Beispiel oben)

+0

Danke, Les H. – daniness