Passa ai contenuti principali

Post

Visualizzazione dei post con l'etichetta SqlServer

Sql Server: Multiple null on Unique Field

Problema: in SqlServer in un campo Unique non vi può essere più di un record con quel campo a null. Non sono ammessi null multipli sui campi unique (nel posso inserire uno solo, il secondo null è considerato un 'valore' duplicato) Se questo sia più o meno corretto è un discorso che va troppo a fondo nell'algebra relazionale. Tuttavia nella pratica è molto richiesto: un campo opzionale che, se diverso da null, deve avere valori distinti. La soluzione in breve: impongo il constraint non sulla tabella stessa ma su una sua View. http://pratchev.blogspot.com/2008/01/unique-column-with-multiple-nulls.html Purtroppo questa soluzione non funziona in SqlCompact, che è sprovvisto di view.

Entity Framework: SqlException Line 7: Incorrect syntax near '('

La stringa SQL generata per il comando linq2Entity First funziona correttamente con SQL server 2008. L'sql generato è SELECT TOP(1) ... Per potersi collegare ad un DB SqlServer2005 serve modificare nei metadati la proprietà ProviderManifestToken ="2005". Emerge a questo punto l'errore che da il titolo al post: ogni chiamata a FirstOrDefault o First esplode riportando il messaggio sibillino. L'inghippo è proprio l'SQL generato: TOP (1) sembra indigesto a sql server 2005. La soluzione: usare come livello di compatibilità 2000 per la proprietà ProviderManifestToken. La query generata è Top 1... , senza parentesi, e funziona su SqlServer2005 Q uesto post nei forum microsof illustra un problema simile e la soluzione.