65.9K
CodeProject 正在变化。 阅读更多。
Home

SQL Server 中的计算列规范

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.45/5 (29投票s)

2007年7月18日

CPOL

2分钟阅读

viewsIcon

122041

downloadIcon

678

用于填充第 n 列的计算列规范

Screenshot - Formula_Image1.gif

引言

本文将帮助用户在后端 (SQL SERVER) 中编写复杂的计算,并在表中填充第 nth 列。由于代码片段是在后端编写的,因此复杂计算的性能很高。

背景

我相信本文的用户已经掌握了编写 SQL 函数的足够知识。我编写了一个函数,该函数将两个参数作为输入,并将参数值添加到结果中。然后,此计算值被插入到我的表的第 nth 列中,其中我的 SQL 插入查询只有两个值。

Using the Code

我创建了一个非常基本的示例来展示“计算列规范”的用法。最初我创建了一个名为“AddValues”的表,它有三个 INT 数据类型的列,我的列分别命名为 firstvaluesecondvaluetotal。我的想法是插入 firstvaluesecondvalue,其中名为 total 的 thirdcolumn 将根据我编写的函数自动填充。

首先,让我们创建一个包含三列的简单表,如下所示。在 SQL Server 的查询分析器中执行以下操作

//
//CREATE TABLE [dbo].[AddValues](
//    [firstvalue] [int] NOT NULL,
//    [secondvalue] [int] NOT NULL,
//    [total]  AS ([dbo].[AddTwoValues]([firstvalue],[secondvalue]))
//) ON [PRIMARY]
//

下一步是创建一个函数,该函数将执行计算,以便填充我们的第三列。在我的示例中,我编写了一个函数,该函数接受两个参数并添加这些值。我的函数返回整数值。用户可以创建他们自己的复杂函数。

//
//ALTER FUNCTION [dbo].[AddTwoValues](@firstval INT,@secondval INT)
//RETURNS INT
//AS
//    BEGIN
//        DECLARE @Result INT
//        SET @Result = @firstval + @secondval
//        RETURN 
//        (
//            @Result
//        )
//    END
//

我的下一步是编写函数名称以及我需要传递的参数。用户需要选择列并在“计算列规范 --> 公式”中编写。请记住,参数是列名,用户不应该在此处使用 '@' 符号。

公式 -- 显示计算列的公式。要编辑此属性,请直接键入新公式。

是否持久化 -- 指示是否存储公式的结果。如果此属性设置为,则仅存储公式,并且每次引用此列时都会计算这些值。要编辑此属性,请单击其值,展开下拉列表,然后选择另一个值。

现在您可以执行插入查询并查看结果。您可以使用如下所示的简单插入查询

//
//INSERT INTO AddValues VALUES(1,2)
//

历史

当收到用户的查询时,我将更新本文。

关于 Proteans 软件解决方案

Proteans 是一家外包公司,专注于 Microsoft 技术平台上的软件产品开发和业务应用程序开发。Proteans 与独立软件供应商 (ISV)、系统集成商和企业的 IT 团队合作开发软件产品。我们在软件产品开发方面的技术重点和丰富经验 - 设计、构建和发布世界一流、强大且可扩展的软件产品,帮助我们缩短上市时间、降低成本、降低业务风险并提高我们客户的整体业务成果。Proteans 在使用 Microsoft .NET 技术进行开发方面拥有专业知识。
© . All rights reserved.