SQL Server 2008 campo numerico con valoni NON negativi.

sabato 24 aprile 2010 - 09.54

ridaria Profilo | Expert

Ciao a mici, spero di sbagliarmi.

in sql server 2008 l'unico tipo di dato che ammette valori non negativi è TinyInt??

Ma è troppo poco, questo tipo di dati ammette valori da 0 a 255!

Datemi una mano, devo impedite che un campo di tipo Int ammetta valori negativi.

Ho visto che altri database hanno l'attributo Unsigned, ma sql server no!
E' mai possibile??

Come faccio

Ciao e grazie

Riccardo D'Aria

lbenaglia Profilo | Guru

>in sql server 2008 l'unico tipo di dato che ammette valori non
>negativi è TinyInt??

Ciao Riccardo,

Tra i data type numerici, si.

>Ma è troppo poco, questo tipo di dati ammette valori da 0 a 255!
Esatto.

>Datemi una mano, devo impedite che un campo di tipo Int ammetta
>valori negativi.
E' sufficiente definire un ckeck constraint sulla colonna.

USE tempdb; CREATE TABLE dbo.foo( C int NOT NULL, CONSTRAINT CHK_C CHECK (C >= 0) ); INSERT dbo.foo VALUES (0), (1), (2); /* Output: (3 row(s) affected) */ INSERT dbo.foo VALUES (-1); /* Output: Msg 547, Level 16, State 0, Line 1 The INSERT statement conflicted with the CHECK constraint "CHK_C". The conflict occurred in database "tempdb", table "dbo.foo", column 'C'. The statement has been terminated. */ DROP TABLE dbo.foo;

>Ho visto che altri database hanno l'attributo Unsigned, ma sql
>server no!
>E' mai possibile??
Si.

>Ciao e grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ridaria Profilo | Expert

Grazie


Ok

Procedo

Mi chiedo perché sql non lo preveda !

Ciao e grazie ancora

Riccardo D'Aria
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5