sql2005資料庫資料型別

2021-04-24 23:27:09 字數 4178 閱讀 8364

sql server 2005的資料型別與sql 2000有一些不同,在建立表時,列的資料型別需要注意幾點

找到這些資料是因為在儲存過程裡面定義區域性變數的時候使用ntext,text,image型別的會出現錯誤。把問題發到鄭州俱樂部的群裡面,大家真當作一回事情討論了一番。本來還以為定義成varchar (max),那麼原有的text型別的資料會不會給截斷了,原來不會出現這樣的事情。

1.sql server的資料型別

資料類弄是資料的一種屬性,表示資料所表示資訊的型別。任何一種計算機語言都定義了自己的資料型別。當然,不同的程式語言都具有不同的特點,所定義的資料型別的各類和名稱都或多或少有些不同。sqlserver 提供了 25 種資料型別:

·binary

·varbinary

·char

·varchar

·nchar

·nvarchar

·datetime

·smalldatetime

·decimal

·numeric

·float

·real

·int

·smallint

·tinyint

·money

·smallmoney

·bit

·cursor

·sysname

·timestamp

·uniqueidentifier

·text

·image

·ntext

(1)二進位制資料型別

二進位制資料報括binary、varbinary 和 image

binary 資料型別既可以是固定長度的(binary),也可以是變長度的。

binary 是 n 位固定的二進位制資料。其中,n 的取值範圍是從 1 到 8000。其儲存窨的大小是 n + 4 個位元組。

varbinary 是 n 位變長度的二進位制資料。其中,n 的取值範圍是從 1 到 8000。其儲存窨的大小是 n + 4個位元組,不是n 個位元組。

在 image 資料型別中儲存的資料是以位字串儲存的,不是由 sql server 解釋的,必須由應用程式來解釋。例如,應用程式可以使用bmp、tief、gif 和 jpeg 格式把資料儲存在 image 資料型別中。

(2)字元資料型別

字元資料的型別包括char,varchar 和 text

字元資料是由任何字母、符號和數字任意組合而成的資料。

varchar 是變長字元資料,其長度不超過 8kb。char 是定長字元資料,其長度最多為 8kb。超過 8kb 的ascii 資料可以使用text資料型別儲存。例如,因為 html 文件全部都是 ascii 字元,並且在一般情況下長度超過 8kb,所以這些文件可以 text 資料型別儲存在sql server 中。

(3)unicode 資料型別

unicode 資料型別包括nchar,nvarchar 和ntext

在 microsoft sql server 中,傳統的非 unicode 資料型別允許使用由特定字符集定義的字元。在 sql server安裝過程中,允許選擇一種字符集。使用 unicode 資料型別,列中可以儲存任何由unicode 標準定義的字元。在 unicode 標準中,包括了以各種字符集定義的全部字元。使用unicode資料型別,所戰勝的窨是使用非 unicode 資料型別所占用的窨大小的兩倍。

在 sql server 中,unicode 資料以 nchar、nvarchar 和 ntext 資料型別儲存。使用這種字元型別儲存的列可以儲存多個字符集中的字元。當列的長度變化時,應該使用nvarchar 字元型別,這時最多可以儲存 4000 個字元。當列的長度固定不變時,應該使用 nchar 字元型別,同樣,這時最多可以儲存4000 個字元。當使用 ntext 資料型別時,該列可以儲存多於 4000 個字元。

(4)日期和時間資料型別

日期和時間資料型別包括datetime 和 smalldatetime兩種型別

日期和時間資料型別由有效的日期和時間組成。例如,有效的日期和時間資料報括「4/01/98 12:15:00:00:00 pm」和「1:28:29:15:01am 8/17/98」。前乙個資料型別是日期在前,時間在後乙個資料型別是霎時間在前,日期在後。在 microsoft sql server中,日期和時間資料型別包括datetime 和 smalldatetime 兩種型別時,所儲存的日期範圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結束(每乙個值要求 8 個儲存位元組)。使用 smalldatetime 資料型別時,所儲存的日期範圍是 2023年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每乙個值要求 4 個儲存位元組)。

日期的格式可以設定。設定日期格式的命令如下:

set dateformat ,

其中,type 是使用者定義的資料型別的名稱。system_data_type 是系統提供的資料型別,例如 decimal、int、char 等等。 null_type 表示該資料型別是如何處理空值的,必須使用單引號引起來,例如"null"、"not null"或者"nonull"。

例子:use cust

exec sp_addtype ssn,"varchar(11)","not null"

建立乙個使用者定義的資料型別 ssn,其基於的系統資料型別是變長為11 的字元,不允許空。

例子:use cust

exec sp_addtype birthday,datetime,"null"

建立乙個使用者定義的資料型別 birthday,其基於的系統資料型別是 datetime,允許空。

例子:use master

exec sp_addtype telephone,"varchar(24),"not null"

eexc sp_addtype fax,"varchar(24)","null"

建立兩個資料型別,即 telephone 和 fax

(2)刪除使用者定義的資料型別

當使用者定義的資料型別不需要時,可刪除。刪除使用者定義的資料型別的命令是 sp_droptype 。

例子:use master

exec sp_droptype "ssn"

注意:當表中的列還正在使用使用者定義的資料型別時,或者在其上面還繫結有預設或者規則時,這種使用者定義的資料型別不能刪除

序號類別

sqlserver

c sharp備註1

整數bit

boolean

true轉換為1false轉換為0

2tinyint

byte

c sharp 資料型別都位於system命名空間

3smallint

int16

4int

int32

5bigint

int64

6smallmoney

decimal

7money

decimal

8numeric

decimal

9decimal

decimal

10浮點數

float

double

11real

single

12日期和時間

smalldatetime

datetime

13datetime

datetime

14timestamp

datetime

15字串

char

string

16text

string

17varchar

string

18nchar

string

19ntext

string

20nvarchar

string

21二進位制資料

binary

byte

22varbinary

byte

23image

byte

24其他

uniqueidentifier

guid

25variant

object

SQL 2005 資料型別

1.用varchar max 代替text varchar 的最大長度為 8000 但是varchar max 則可以儲存多達 2g的資料,因此其作用相當於 sql 2000 中的text 但是微軟可能會後續的 sql server 版本中移除 text 型別,從現在就應該用 varchar max...

SQL2005 資料庫置疑

很多朋友在2005 中遇到置疑 丟失日誌時按照網上常見的 mssql2000 修復方法來做,結果發現行不通,甚至連一步都做不下去。其實,在 mssql2005 在處理置疑問題的思 路與mssql2000 是一致的,但具體到一些語句上 mssql2005 有了很大的變動。我們以 乙個被誤刪日誌檔案的資...

sql2005資料庫還原

需要注意的問題 a.兩類特殊的資料型別 日期和時間型別的資料儲存方式和可用值範圍 相關的計算 比較 顯示 換為指定格式的字串 都比較複雜,還涉及一組日期時間函式。參看datetime型別分析一帖。字串型別涉及到字元編碼和排序規則,比較操作還包含like匹配 未來還可能會支援正規表示式匹配 非常需要注...