Tsql 我需要一些帮助来理解这行T-SQL代码

Tsql 我需要一些帮助来理解这行T-SQL代码,tsql,Tsql,我在一本书中读过这行代码,但不能完全理解它的应用。我理解这是关于隐式转换的,但不完全理解某些代码的用途 DECLARE @sql NVARCHAR( SELECT ISNULL(''5'', 5), ISNULL(5, ''5''), COALESCE(''5'', 5), COALESCE(5, ''5'') ; ' ; EXEC sp_executesql @sql ; SELECT column_ordinal, is_nullable, system_type_name

我在一本书中读过这行代码,但不能完全理解它的应用。我理解这是关于隐式转换的,但不完全理解某些代码的用途

DECLARE @sql NVARCHAR(

SELECT ISNULL(''5'', 5),

ISNULL(5, ''5''),

COALESCE(''5'', 5),

COALESCE(5, ''5'') ;

' ;

EXEC sp_executesql @sql ;

SELECT column_ordinal,

is_nullable,

system_type_name

FROM master.sys.dm_exec_describe_first_result_set(@sql, NULL, 0) a ;

我将冒一个险,猜测它是用于演示两个类似TSQL函数之间差异的可执行代码。此示例应产生预期结果:

SELECT column_ordinal, is_nullable, system_type_name FROM sys.dm_exec_describe_first_result_set  
  ( N'SELECT ISNULL(''5'', 5), ISNULL(5, ''5''), COALESCE(''5'', 5), COALESCE(5, ''5'');', null, 0);
有一个SQLFiddle示例可用

仔细阅读和的文档,特别注意每种返回类型,将解释结果。这也是说明性的