You use Microsoft SQL Server 2012 to develop a database application. Your application sends data to an
NVARCHAR(MAX) variable named @var. You need to write a Transact-SQL statement that will find out the
success of a cast to a decimal (36,9). Which code segment should you use?select
A.
BEGIN TRY
SELECT convert(decimal(36,9), @var) AS Value, ‘True’ AS BadCast
END TRY
BEGIN CATCH
SELECT convert(decimal(36,9), @var) AS Value, ‘False’ AS BadCast
END CATCH
B.
TRY(
SELECT convert(decimal(36,9), @var)
SELECT ‘True’ AS BadCast
)
CATCH(
SELECT ‘False’ AS BadCast
)
C.
SELECT
CASE
WHEN convert(decimal(36,9), @var) IS NULL
THEN ‘True’
ELSE ‘False’
END
AS BadCast
D.
SELECT
IIF(TRY_PARSE(@var AS decimal(36,9)) IS NULL, ‘True’, ‘False’)
AS BadCast
Explanation:
Verified answer as correct.
Reference: http://msdn.microsoft.com/en-us/library/hh213126.aspx
D
http://msdn.microsoft.com/en-us/library/hh213126.aspx
D
C and D both are correct – Tested