Tôi muốn biết tại sao, khi tôi tạo kiểu dữ liệu tùy chỉnh trong SQL Server, dựa trên số nguyên không null và tôi gán nó cho mặc định giá trị, tôi không thể có được giá trị này khi nó không phải là một định nghĩa bảng (chỉ là một biến khai báo). Dưới đây là mã của tôi:SQL Server tùy chỉnh không null kiểu dữ liệu với giá trị mặc định là trả về null
BEGIN TRAN;
GO
CREATE TYPE Province FROM INT NOT NULL;
GO
CREATE DEFAULT ProvinceDefault AS 4;
GO
EXEC sp_bindefault
'ProvinceDefault',
'Province';
GO
DECLARE @Province Province;
SELECT @Province;
GO
ROLLBACK TRAN;
Nó trả NULL
Nó chỉ là bản chất của đối tượng 'DEFAULT', nó chỉ áp dụng cho các cột. [MSDN] (https://msdn.microsoft.com/en-us/library/ms173565.aspx) nêu rõ * "Khi bị ràng buộc vào một cột hoặc một kiểu dữ liệu bí danh, một mặc định chỉ định một giá trị được chèn vào cột để mà đối tượng bị ràng buộc (hoặc vào tất cả các cột, trong trường hợp của một loại dữ liệu bí danh), khi không có giá trị nào được cung cấp rõ ràng trong khi chèn. * ". Không thể chỉ định giá trị mặc định cho biến. Nó cũng đáng chú ý rằng 'CREATE DEFAULT' không được chấp nhận, vì vậy bạn có lẽ nên tránh sử dụng tất cả cùng nhau. – GarethD