除了在运行时重命名列名和数据类型之外,到目前为止,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#)等进行对话。
答案 0 :(得分:2)
嗯,首先,假设您的应用程序正在调用sp_who2,并且它将SPID存储在int32中。 sp_who2将SPID作为char返回,要求您在所有应用程序中执行特殊处理,以将输出转换为int32。如果创建包装器过程,则可以在一个位置执行此操作,而无需先将结果转储到临时表中。 sp_who2的另一个奇怪的情况是它返回两个相同的SPID列 - 使用WITH RESULT SETS,您可以重命名其中一个(例如,更改为redundant_SPID),这样您的应用就不会看到多个具有相同名称的列。
另一个用例是说您正在将数据类型从int64更改为int32或int32更改为varchar,但您无法一次更改所有应用程序。您可以更改“现代”应用程序以使用新数据类型,同时保留其他“现在不可更改”的应用程序以使用旧数据类型。这意味着您可以逐个拆分应用程序的部署和测试,而不是在所有应用程序中进行批量数据类型更改。