Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Đổi tên Kiểu dữ liệu do người dùng xác định trong SQL Server (T-SQL)

Trong SQL Server, bạn có thể sử dụng sp_rename quy trình được lưu trữ để đổi tên đối tượng do người dùng tạo trong cơ sở dữ liệu hiện tại, bao gồm cả kiểu dữ liệu do người dùng xác định.

Cú pháp

Cú pháp như sau:

EXEC sp_rename 'old_datatype', 'new_datatype', 'USERDATATYPE';

Ở đâu old_datatype là tên của kiểu dữ liệu do người dùng xác định mà bạn muốn đổi tên và new_datatype là tên mới mà bạn muốn đặt cho nó.

Ví dụ

Hãy xem các kiểu dữ liệu do người dùng xác định hiện tại trong cơ sở dữ liệu của chúng tôi.

SELECT 
  name,
  max_length,
  [precision],
  scale,
  is_user_defined
FROM sys.types
WHERE is_user_defined = 1;

Kết quả:

 +----------+--------------+-------------+---------+-------------------+
 | name     | max_length   | precision   | scale   | is_user_defined   |
 |----------+--------------+-------------+---------+-------------------|
 | clientid | 8            | 0           | 0       | 1                 |
 +----------+--------------+-------------+---------+-------------------+ 

Chúng tôi có một kiểu dữ liệu do người dùng xác định được gọi là clientid .

Hãy đổi tên nó thành clientcode .

EXEC sp_rename 'clientid', 'clientcode', 'USERDATATYPE';

Chạy mà đổi tên nó thành clientcode . Bạn có thể thấy thông báo sau:

Caution: Changing any part of an object name could break scripts and stored procedures.

Về cơ bản, điều này cho chúng tôi biết rằng nếu chúng tôi có bất kỳ tập lệnh nào của các thủ tục được lưu trữ tham chiếu đến đối tượng đã đổi tên của chúng tôi, thì chúng sẽ bị hỏng và chúng tôi sẽ cần cập nhật chúng.

Bạn có thể tự hỏi nếu điều này có nghĩa là bất kỳ cột nào hiện có sử dụng kiểu dữ liệu này bây giờ sẽ bị hỏng?

May mắn thay, các cột hiện có sẽ ổn.

Sau khi đổi tên kiểu dữ liệu do người dùng xác định, bất kỳ cột nào sử dụng kiểu dữ liệu đó sẽ tiếp tục sử dụng kiểu dữ liệu đó với tên mới. Mọi hạn chế của loại dữ liệu (chẳng hạn như độ dài, v.v.) tiếp tục được thực thi.

Bây giờ, hãy kiểm tra lại danh sách các loại dữ liệu do người dùng xác định:

SELECT 
  name,
  max_length,
  [precision],
  scale,
  is_user_defined
FROM sys.types
WHERE is_user_defined = 1;

Kết quả:

+------------+--------------+-------------+---------+-------------------+
 | name       | max_length   | precision   | scale   | is_user_defined   |
 |------------+--------------+-------------+---------+-------------------|
 | clientcode | 8            | 0           | 0       | 1                 |
 +------------+--------------+-------------+---------+-------------------+ 

Như mong đợi, nó đã được đổi tên như đã chỉ định.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi MSSQL 'Nhà cung cấp cơ bản không thành công khi Mở'

  2. 3 cách trả về tất cả các bảng KHÔNG có khóa chính trong SQL Server

  3. Cách tạo lịch sử HOẶC Chế độ xem kiểm tra từ thay đổi bảng thu thập dữ liệu (CDC) trong SQL Server - Hướng dẫn sử dụng SQL Server

  4. tham chiếu chưa được giải quyết tới đối tượng [INFORMATION_SCHEMA]. [TABLES]

  5. Cách xem kế hoạch thực thi truy vấn trong Azure Data Studio (SQL Server)