0

到目前为止,除了在运行时重命名列名和数据类型之外,Denali 的 With Result Set的实时用途是什么。

甚至在使用结果集中在运行时更改数据类型有什么好处

例如

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) 
       )    
)

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

但是这篇文章给出了一些关于它在 SSIS 中的好处的想法。但我对 Sql Server 存储的 Proc 与任何前端应用程序(例如 c#)等对话更感兴趣。

4

1 回答 1

2

好吧,首先,假设您的应用程序正在调用 sp_who2,并且它将 SPID 存储在 int32 中。sp_who2 以字符形式返回 SPID,要求您在所有应用程序中执行特殊处理以将输出转换为 int32。如果您创建一个包装过程,您可以在一个地方执行此操作,而不必先将结果转储到临时表中。sp_who2 的一个更奇怪的情况是它返回两个相同的 SPID 列 - 使用 WITH RESULT SETS,您可以重命名其中一个(例如,改为冗余_SPID),以便您的应用程序永远不会看到多个具有相同名称的列。

另一个用例是假设您将数据类型从 int64 更改为 int32 或将 int32 更改为 varchar,但您不能一次更改所有应用程序。您可以更改“现代”应用程序以使用新数据类型,而让其他“当前不可更改”应用程序使用旧数据类型。这意味着您可以将应用程序的部署和测试一个一个地分开,而不是在所有应用程序中进行大规模的数据类型更改。

于 2011-03-07T19:10:28.280 回答