Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

restricciones CHECK

Estas en el tema de restricciones CHECK en el foro de SQL Server en Foros del Web. Hola a todos como hago una restricción, que impida en un campo de tipo nvarchar(n) que ingrese una cadena de caracteres que no contenga espacios. ...
  #1 (permalink)  
Antiguo 28/01/2009, 06:34
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 16 años
Puntos: 0
restricciones CHECK

Hola a todos

como hago una restricción, que impida en un campo de tipo nvarchar(n) que ingrese una cadena de caracteres que no contenga espacios.

Es decir, si por ejemplo en la cadena decaracteres el usuario ingresa en este campo 'holamundo', entonces esto es correcto, pero si ingresa 'hola mundo', esto es incorrecto dado que hay un espacio entre 'hola' y 'mundo'.

Cualquier ayuda seria bienvenida.

saludos
  #2 (permalink)  
Antiguo 28/01/2009, 07:25
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: restricciones CHECK

Creas la regla...
Código:
CREATE RULE rlSinEspacios
AS 
charindex(' ' , @string) = 0
go
Y luego la ligas al campo de la tabla que deseas asegurar con la regla..

Código:
EXEC sp_bindrule 'rlSinEspacios', 'MiTabla.[MiCampoSinEspacios]'
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 28/01/2009, 08:31
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 16 años
Puntos: 0
Respuesta: restricciones CHECK

Entiendo Andres,

Muchas gracias por tu ayuda...

tengo solo una duda que me gustaría aclarar.

En la web de MSDN online, aparece este comentario ...

http://msdn.microsoft.com/es-es/library/ms188064.aspx

me gustaría que pudieras decirme entonces, como yo podria hacer eso mismo pero con una restricción CHECK.

Saludos
  #4 (permalink)  
Antiguo 28/01/2009, 08:42
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 16 años
Puntos: 0
Respuesta: restricciones CHECK

Estimado,

Hice lo siguiente y funciono:

ALTER TABLE [tabla] WITH CHECK ADD CONSTRAINT [CK_tabla_columna] CHECK ((CHARINDEX(' ',[columna])=0))

funciono perfecto.

Pero ahora si te la pongo difícil(bueno, eso creo). Como hago para restringir a este mismo campo con caracteres que solo contengan letras en mayuscula.

Hay alguna función para detectar CAPS o algo así?

Saludos
  #5 (permalink)  
Antiguo 28/01/2009, 09:40
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: restricciones CHECK

Código:
CREATE RULE rlSoloMayusculas
AS 
Case When @string COLLATE SQL_Latin1_General_CP1_CS_AS = upper(@string) Then 1 Else 0 End = 1
go
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:53.