【问题标题】:Real time application/benefit of Denali's With Result SetDenali's With Result Set 的实时应用/优势
【发布时间】:2011-06-22 14:51:36
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-12-27
      • 2013-04-23
      • 2015-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多