sysname
SQL Server 執行個體包括使用者定義的名為 sysname 的資料類型。sysname 用於表列、變數以及用於儲存物件名的預存程序參數。sysname 的精確定義與標識符規則相關;因此,SQL Server 的各個執行個體會有所不同。sysname 與
nvarchar(128) 作用相同。SQL Server 6.5 或早期版本僅支援較小的標識符;因此,在早期版本中,sysname 被定義為
varchar(30)。
重要提示:
在區分大小寫或使用二進位定序的資料庫中,僅當 sysname 以小寫顯示時,才會被識別為 SQL Server 系統資料類型。
------------------------------------------------------------------------------------------------------------------------------------------
是系統提供使用者定義的資料類型,在功能上等同於 nvarchar(128),用於引用資料庫物件名。
------------------------------------------------------------------------------------------------------------------------------------------
select * from systypes
你可以看到系統支援的所有類型,其中有sysname
------------------------------------------------------------------------------------------------------------------------------------------
sysname等價於not null 的nvarchar(128),這於它顯示的leng-256是表示佔用256個位元組的空間.但是只能存128個字元(一個字元占 兩個位元組).
------------------------------------------------------------------------------------------------------------------------------------------
那將sysname換成nvarchar(128)也沒有什麼嗎?
不是的,sysname等價於not null的nvarchar(128).你換成了varchar(128)就少了not null的限制了.
我的感覺這個sysname欄位就是系統自己在nvarchar(128)的基礎上封裝的一個資料類型.長度256,不可為空白,主要是用來作為系統中一些中繼資料的類型的,比較方便,省得每次都指明長度和為空白性.
你可以用如下的語句自己比較一下
exec sp_help sysname
go
exec sp_help nvarchar