Monday, December 1, 2025

New Features in SQL Server 2025 - Part 1

Last week's Microsoft Ignite 2025 brought exciting news, most notably the official availability of SQL Server 2025. While the core database engine continues to evolve, several noteworthy shifts and additions have been introduced, particularly concerning reporting and development capabilities.

One of the most significant changes affects the traditional SQL Server Reporting Services (SSRS):

  • The SSRS server will no longer be available as an integrated add-on for SQL Server 2025 installations.
  • Instead, Microsoft is steering users toward the Power BI Report Server (PBIRS). PBIRS is the designated platform for hosting both paginated reports (the modern equivalent of SSRS reports) and Power BI reports.

This transition reinforces Microsoft's unified reporting strategy. However, to truly serve enterprise needs, I hope future updates to PBIRS will incorporate features already available in the Power BI Service, such as:

  • Row-Level Security (RLS) for enhanced data governance.
  • The ability to use a single, unified semantic model as the data source for multiple reports, streamlining data management and consistency.

Enhanced Development Capabilities in SQL Server 2025

The development environment in SQL Server 2025 sees a substantial upgrade, introducing numerous features designed to handle modern data types and complex queries:

  • Greater Support for JSON
  • Vector Search capabilities
  • Native support for Regular Expressions

Among these additions, one feature, in particular, caught my attention: the new PRODUCT function.

The Power of the New PRODUCT Function

The PRODUCT function is a powerful addition that calculates the product (multiplication) of the values in a set. This function is a significant tool, especially for the financial sector, where calculations involving cumulative growth rates or compound factors are common.

It can be used both as an aggregate function or as an analytical (window) function.

Here is a simple example of using PRODUCT

Code Listing:

1> use testnf2025

2> go

Changed database context to 'testnf2025'.

1> create table t

2> ( id int primary key ,

3>   code varchar(10) not null ,

4>   name varchar(50) not null ,

5>   pos_date date not null ,

6>   price numeric(9,2) not null

7>   )

8>   ;

9> go

1>  insert into t values ( 1 , '001' , 'PHONE' , '2005-12-01' , 100 ) ;

2>  insert into t values ( 2 , '001' , 'PHONE' , '2025-12-01' , 799 ) ;

3>  insert into t values ( 3 , '002' , 'SMART CAMERA' , '2025-12-01' , 57 ) ;

4> go

 

(1 rows affected)

(1 rows affected)

(1 rows affected)


PRODUCT as an aggregate function

 1>  Select code ,name ,  PRODUCT( price) as prd_price

2>  from t

3>  group by code, name;

4> go

code       name                       prd_price

---------- ---------------- ---------------------------

001        PHONE                    79900.000000

002        SMART CAMERA             57.000000


(2 rows affected)

 

PRODUCT as an window function

1>   Select code , name ,

2>   PRODUCT( price)  over ( partition by code order by pos_date )  as prd_price_running

3>   from t;

4> go

code      name       prd_price_running

---------- ----------  ---------------------------------

001       PHONE            100.000000

001        PHONE           79900.000000

002        SMART CAMERA    57.000000

(3 rows affected)


More to explore with the other features soon .

Stay Tuned .