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

Как TRY_CAST() работи в SQL Server

В SQL Server често използвана функция е CAST() , който преобразува израз от един тип данни в друг. Но ако прехвърлянето не успее, то връща грешка.

Въведете TRY_CAST() .

TRY_CAST() функцията не връща грешка, ако прехвърлянето е неуспешно. Вместо това връща NULL .

Има обаче някои случаи, когато ще върне грешка.

Синтаксис

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

TRY_CAST ( expression AS data_type [ ( length ) ] )

Където expression е изразът за преобразуване, data_type е новият тип данни и length е незадължителна дължина за новия тип данни.

Пример 1 – Прехвърлянето е успешно

Ето пример за прехвърляне на низ като decimal :

SELECT TRY_CAST('007' AS DECIMAL(5,2));

Резултат:

7.00

В този случай актьорският състав успя.

Пример 2 – Прехвърлянето е неуспешно и връща NULL

Ето пример за неуспешно прехвърляне и NULL се връща:

SELECT TRY_CAST('Double Oh Seven!' AS DECIMAL(5,2));

Резултат:

NULL

Прехвърлянето е неуспешно и така NULL беше върнат.

За сравнение, ето какво се случва, когато използваме CAST() вместо TRY_CAST() :

SELECT CAST('Double Oh Seven!' AS DECIMAL(5,2));

Резултат:

Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.

Пример 3 – Прехвърлянето е неуспешно и връща грешка

Има някои случаи, когато TRY_CAST() ще върне грешка.

Ако прехвърлянето не е изрично разрешено, то връща грешка:

SELECT TRY_CAST(10 AS xml);

Резултат:

Msg 529, Level 16, State 2, Line 1
Explicit conversion from data type int to xml is not allowed.

Повече информация

Вижте как CAST() Работи в SQL Server за повече примери за преобразуване и CAST() срещу TRY_CAST() в SQL Server за сравнение между CAST() и TRY_CAST() .

Вижте документацията на Microsoft за CAST() и CONVERT() за по-подробна информация (повечето от нея се отнася и за TRY_CAST() ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как SHOWPLAN_XML работи в SQL Server

  2. T-SQL подзаявка Макс (дата) и присъединявания

  3. Конфигуриране на стартираща среда в SQL Server Management Studio (SSMS) - SQL Server / TSQL урок, част 7

  4. Защо винаги предпочитаме да използваме параметри в SQL изрази?

  5. Автоматизиране на дефрагментацията на индекса в базата данни на MS SQL Server