Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Преименуване на потребителски дефиниран тип данни в SQL Server (T-SQL)

В SQL Server можете да използвате sp_rename съхранена процедура за преименуване на обект, създаден от потребител, в текущата база данни, включително потребителски дефиниран тип данни.

Синтаксис

Синтаксисът е така:

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

Където old_datatype е името на дефинирания от потребителя тип данни, който искате да преименувате, и new_datatype е новото име, което искате да му дадете.

Пример

Нека да разгледаме текущите дефинирани от потребителя типове данни в нашата база данни.

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

Резултат:

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

Имаме един потребителски дефиниран тип данни, наречен clientid .

Нека го преименуваме на clientcode .

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

Изпълнението го преименува на clientcode . Може да видите следното съобщение:

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

Това основно ни дава предубеждения, че ако имаме някакви скриптове на съхранени процедури, които препращат към нашия преименуван обект, те ще се счупят и ще трябва да ги актуализираме.

Може да се чудите дали това означава, че всички съществуващи колони, които използват този тип данни, сега ще бъдат повредени?

За щастие съществуващите колони трябва да са добре.

След преименуване на дефинирания от потребителя тип данни, всички колони, които използват този тип данни, ще продължат да използват този тип данни с новото му име. Всички ограничения на типа данни (като дължина и т.н.) продължават да се прилагат.

Сега нека отново проверим нашия списък с дефинирани от потребителя типове данни:

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

Резултат:

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

Както се очакваше, той беше преименуван, както е посочено.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да генерирате план за изпълнение в SQL Server

  2. Как да съхранявате изображение в колоната с таблици на база данни на SQL Server

  3. 3 метода за свързване на MDF файл към SQL Server

  4. Как да стартирате задача на агент на SQL Server с помощта на T-SQL

  5. Генериране на клас от таблицата на базата данни