Denali的结果集的实时应用/好处

时间:2011-02-07 09:15:16

标签: sql sql-server sql-server-2012

除了在运行时重命名列名和数据类型之外,到目前为止,Denali's With Result Set的实时使用是什么?Sql Stored Procs是关注的。

甚至在使用结果集

中在运行时更改数据类型的好处是什么

e.g。

Alter PROCEDURE test_Proc
AS
BEGIN 
      SELECT  * FROM tbl_Test
END
GO
EXEC test_Proc 
WITH RESULT SETS 
(
       (      Id int,
              EmpName varchar(50),
              PNo varchar(50) 
       )    
)

即使列数据类型已更改,我们将如何处理?

然而this article给出了一些关于它在SSIS中的好处的想法。但是我更感兴趣的是Sql Server存储过程与任何前端应用程序(例如c#)等进行对话。

1 个答案:

答案 0 :(得分:2)

嗯,首先,假设您的应用程序正在调用sp_who2,并且它将SPID存储在int32中。 sp_who2将SPID作为char返回,要求您在所有应用程序中执行特殊处理,以将输出转换为int32。如果创建包装器过程,则可以在一个位置执行此操作,而无需先将结果转储到临时表中。 sp_who2的另一个奇怪的情况是它返回两个相同的SPID列 - 使用WITH RESULT SETS,您可以重命名其中一个(例如,更改为redundant_SPID),这样您的应用就不会看到多个具有相同名称的列。

另一个用例是说您正在将数据类型从int64更改为int32或int32更改为varchar,但您无法一次更改所有应用程序。您可以更改“现代”应用程序以使用新数据类型,同时保留其他“现在不可更改”的应用程序以使用旧数据类型。这意味着您可以逐个拆分应用程序的部署和测试,而不是在所有应用程序中进行批量数据类型更改。