2008-12-19 13 views

Respuesta

19
ALTER TABLE Table 
ADD CONSTRAINT CK_Table_Column_Range CHECK (
    Column >= 0 AND Column <= 100 --Inclusive 
) 
+0

Si usa 'BETWEEN 0 AND 100' como se menciona en otras respuestas, SQL Server Management Studio lo convertirá en' ([columna]> = (0) AND [columna] <= (100)) 'para usted si estás usando la GUI para crearla. –

3

Una restricción de comprobación como "fieldname BETWEEN 0 AND 100" debería hacerlo.

2

Probar:

ALTER TABLE myTableName 
ADD CONSTRAINT myTableName_myColumnName_valZeroToOneHundred 
CHECK (myColumnName BETWEEN 0 AND 100) 

Esta comprobación sería incluido - he aquí algo de información sobre ENTRE desde MSDN: BETWEEN (Transact SQL)

1

Según yo, la pregunta correcta no es "cómo" pero "por qué ".

Esta regla de 0-100 me suena como una regla de negocios. ¿Por qué debería implementarse en el servidor/base de datos? Si se ingresa un valor incorrecto, ¿quién recibirá el mensaje de error?

Si el usuario recibe el mensaje de error, ¿no sería más fácil tener el código dándole el mensaje antes de que la transacción llegue al servidor?

¿Qué ocurre con la modificación de rango? ¿Puede cambiar la regla? Supongo que sí: las reglas SIEMPRE cambian. ¿Se puede actualizar el rango de 0-100 a 101-200? En este caso, ¿qué pasa con los valores ya ingresados ​​en la base de datos?

Cuestiones relacionadas