SSMS
 sql >> база данни >  >> Database Tools >> SSMS

SQL Server ISNUMERIC() Разяснение

Трябва да използвате CAST() или TRY_CAST() вместо това:

declare @test nvarchar(8) = '12345678'
select cast(@test as bigint) -- errors on failure
select try_cast(@test as bigint) -- returns null on failure

Също така е важно да се посочи ISNUMERIC() не е перфектен. От документите :

ISNUMERIC връща 1 за някои знаци, които не са числа, като плюс (+), минус (-) и валидни валутни символи, като знака за долар ($). За пълен списък с валутни символи вижте пари и малки пари (Transact-SQL).

Поради тази причина не мисля, че логическата проверка е от стойност тук. Най-добре е да използвате TRY_CAST() за всички стойности, независимо от наличието на знаци и обработвайте нулевия отговор по предвидим начин.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Най-добрият скрипт за възстановяване на множество бази данни със SQL Server 2012?

  2. Открит е неочакван EOF във файла с данни на BCP

  3. Показване на броя на редовете от SQL сървър до програма

  4. SQL Server:активиране на отдалечени връзки без SSMS

  5. SQL Server Management Studio няма да се свърже със Sql Server