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