您是第 Web Page Tracking 位访客

水~墨~

昂首阔步,不留一点遗憾!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

cast(变量 as  类型)
convert(类型,变量)

 

1. MSSQL 2005 基本数据类型

1)字符串类型

非unicode:char   最多存储8000个字符   char(10)

                    varchar   2^31.  变长 varchar(30)                  text

unicode: nchar,nvarchar,ntext

使用 UNICODE UCS-2 字符集(全球大部分字符都有)比如欧洲字母表很小,255个字符足够了。但是韩国,日本,中国的中文没办法全够。  unicode 使用2个字节,

,用2个字节表示一个字符。  即2^16=65536 字符

 

             

 

使用规则:当固定字长用char,变长varchar;       nchar,nvarchar是当不同国家字符在不同机器上 可以无误显示。

 

2)数值类型

精确数字
bigint  8字节。 -2^63到2^63-1
int  4字节 。  -2^31到2^31-1
smallint 2字节   -2^16到2^16-1
tinyint  1字节    0到255

 

近似数字
float
real

 

 

3)时间类型
datetime  精确到3.33毫秒
smalldatetime 精确到分钟

 

4)

二进制数据
binary ,varbinary,image

 

5)其他数据类型

cursor
timestamp  时间数字
sql_variant
uniqueidentifier
table
xml

 

 

 

 

 

2.check 约束

 

IF OBJECT_ID ('dbo.Vendors', 'U') IS NOT NULL
DROP TABLE dbo.Vendors;
GO
CREATE TABLE dbo.Vendors
    (VendorID int PRIMARY KEY, VendorName nvarchar (50),
    CreditRating tinyint)
GO
ALTER TABLE dbo.Vendors ADD CONSTRAINT CK_Vendor_CreditRating
    CHECK (CreditRating >= 1 AND CreditRating <= 5)


 

 

 

或者企业管理器编辑约束

 

image右击ck_online_operate 

 

//约束了creditRating只能插入 1-5之间的值

 

select * from vendors

insert into vendors values('1','sdf','6')   //插入的6大于5 就会报错

 

执行结果:

消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 CHECK 约束"CK_Vendor_CreditRating"冲突。该冲突发生于数据库"companyData",表"dbo.Vendors", column 'CreditRating'。
语句已终止。

 

 

*default 约束

USE [companyData]
GO
ALTER TABLE [dbo].[companyKey] ADD  DEFAULT ((0)) FOR [isUsed]

 

 

 

posted on 2013-06-11 22:45  水墨.MR.H  阅读(399)  评论(0编辑  收藏  举报
知识共享许可协议
本博客为水墨原创,基于Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的水墨(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。