Insérer la valeur NULL de xml dans la database

Comment puis-je insert une valeur nulle de la string XML dans la database.

Lorsque j'insère, alors le champ DOB inséré '1900-01-01 00: 00: 00.000' et le champ de genre ''. Je veux insert la valeur NULL à cette colonne. Aidez-moi, s'il vous plaît.

<Child> <EnrolmentNo>01113702010</EnrolmentNo> <Name>Ankush</Name> <DOB></DOB> <Email>[email protected]</Email> <Gender></Gender> <Phone>9990234323, 9452344321</Phone> <RegistrationDate>2013-11-12T00:00:00</RegistrationDate> <ValidUpto>2014-12-12T00:00:00</ValidUpto> </Child> @Input XML INSERT INTO KP_StudentsTemp ( [EnrolmentNo],[SessionId],[BatchId],[SemesterId], [FirstName],[MiddleName],[LastName],[DOB],[Email],[Gender],[Phone], [RegistrationDate],[ValidUpto] ) SELECT (XNodes.value('(EnrolmentNo)[1]','varchar(32)')), XNodes.value('(Name)[1]','varchar(32)'), XNodes.value('(DOB)[1]','datetime'), XNodes.value('(Email)[1]','varchar(256)'), XNodes.value('(Gender)[1]','char(1)'), XNodes.value('(Phone)[1]','varchar(64)'), XNodes.value('(RegistrationDate)[1]','datetime'), XNodes.value('(ValidUpto)[1]','datetime') FROM @input.nodes('/Main/Child') AS XTbl(XNodes) 

vous pouvez utiliser la fonction NULLIF

 @Input XML INSERT INTO KP_StudentsTemp ( [EnrolmentNo],[SessionId],[BatchId],[SemesterId], [FirstName],[MiddleName],[LastName],[DOB],[Email],[Gender],[Phone], [RegistrationDate],[ValidUpto] ) SELECT ( XNodes.value('(EnrolmentNo)[1]','varchar(32)')), XNodes.value('(Name)[1]','varchar(32)'), NULLIF(XNodes.value('(DOB)[1]','datetime'),'1900-01-01 00:00:00.000'), XNodes.value('(Email)[1]','varchar(256)'), NULLIF(XNodes.value('(Gender)[1]','char(1)'),''), XNodes.value('(Phone)[1]','varchar(64)'), XNodes.value('(RegistrationDate)[1]','datetime'), XNodes.value('(ValidUpto)[1]','datetime') FROM @input.nodes('/Main/Child') AS XTbl(XNodes) 

NULLIF