if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tb]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tb]
GOCREATE TABLE [dbo].[tb] (
[name1] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOALTER TABLE [dbo].[tb] WITH NOCHECK ADD 
CONSTRAINT [CK_tb] CHECK (([name1] < 'a' or [name1] > 'z') and ([name1] < 'A' or [name1] > 'Z'))
GO

解决方案 »

  1.   

    DECLARE @t table(col varchar(10) check( patindex('%[a-z]%',col)=0))insert @t select '12a12'select * from @t
      

  2.   

    DECLARE @t table(col varchar(10) check( patindex('%[a-zA-Z]%',col)=0)) insert @t select '12a12' select * from @t
      

  3.   

    简单一点:
    create table tb(
    name1 varchar(100) CHECK (([name1] < 'a' or [name1] > 'z') and ([name1] < 'A' or [name1] > 'Z')) 
    )
      

  4.   

    CREATE TABLE [dbo].[tb] ( 
    [name1] [varchar] (100) check (patindex('%[a-zA-Z]%',[name]) = 0) 
    ) ON [PRIMARY] 
    GO 
      

  5.   

    CREATE TABLE [dbo].[tb] ( 
    [name1] [varchar] (100) check ( [name] not like '%[a-zA-Z]%') 
    ) ON [PRIMARY] 
    GO