Resources  
  • Database Fragmentation: Understanding, Managing, and MitigatingJun 06, 2025. Learn how to detect, manage, and resolve SQL Server fragmentation with live examples. Improve query performance, reduce I/O overhead, and optimize indexes and heaps using proven best practices and tools.
  • Horizontal vs Vertical Partitioning in SQLJun 04, 2025. Horizontal and vertical partitioning are techniques in SQL to improve performance and manage large datasets. Learn how each method works, their use cases, and how they impact database design.
  • Transforming Data Insights with Snowflake's LLM Functions – PART 2Jun 04, 2025. Snowflake Cortex LLM functions like TRANSLATE and SUMMARIZE, enabling powerful in-database AI for multilingual translation and concise text summaries, thereby enhancing data analytics without the need for external tools or APIs.
  • Building a Clean ASP.NET Core API with C# 13, EF Core, and DDDJun 02, 2025. The guide is written by Ziggy Rafiq and follows real-world architecture and testing best practices to provide a clean, scalable REST API using ASP.NET Core, C# 13, EF Core, and MS SQL.
  • What is an AI Agent?Jun 03, 2025. In this article, we break down the definition, types, architecture, real-world use cases, and future scope of AI agents.
  • Understanding DBCC Commands in SQL Server: Use Cases and ImportanceMay 31, 2025. Learn the essentials of DBCC commands in SQL Server—powerful tools for monitoring, maintaining, and troubleshooting databases. Mastering them ensures performance optimization, deadlock resolution, and proactive database health checks.
  • Interfaces vs Types in TypeScriptMay 29, 2025. Don’t waste another hour arguing over type vs interface. Here's what matters, what doesn't, and how to pick the right one without overthinking it.
  • SQL Server Transaction Locks: Identification & ResolutionMay 28, 2025. Learn how SQL Server transaction locks ensure data integrity, identify locking issues using DMVs and Activity Monitor, and explore strategies like query optimization, isolation levels, and deadlock resolution for better performance.
  • How to Install and Configure SQL Server 2025 in WindowsMay 22, 2025. This articlee walks you through installing SQL Server 2025 on Windows, from system requirements to setup and configuration. Learn how to enable features, set authentication modes, and ensure your server runs smoothly ideal for beginners and advanced users alike.
  • Understanding Types in TypeScriptMay 15, 2025. Explore the different types in TypeScript, including primitives, union and intersection types, type aliases, interfaces, and generics.
  • Event-Driven CQRS with C# 14 and the SQL Outbox PatternMay 15, 2025. Learn how to implement a reliable event-driven CQRS microservice using the SQL Outbox Pattern with C# 14. Ensure strong consistency, transactional event publishing, and fail-safe asynchronous processing for scalable distributed systems.
  • Real-Time Data Retrieval from APIs Using SSISMay 14, 2025. This article explains how to integrate APIs with SQL Server Integration Services (SSIS) to automate data retrieval using HTTP requests. It covers API setup, SSIS package creation, and script task configuration.
  • .NET Aspire Integrations (SQL Server Integration in Aspire Applications)May 14, 2025. In this chapter, you'll learn how to integrate SQL Server into your .NET Aspire applications with minimal configuration and maximum flexibility.
  • Microsoft Fabric Warehouse Integration in VS Code for DevsMay 13, 2025. Experience seamless development with Microsoft Fabric and VS Code integration. Write, debug, and manage SQL queries directly in your editor, connect to Fabric Warehouse, and boost productivity with real-time data access.
  • Advanced ETL from OLTP Databases to a Data Warehouse with C# 14May 12, 2025. Build scalable and efficient ETL pipelines using C# 14 and .NET 9. Leverage Dapper, SQL Server, Azure Synapse, and cloud integration for seamless data extraction, transformation, and loading to data warehouses and lakes.
  • TypeScript: Strong Types and Where to Find Them?May 09, 2025. TypeScript is a typed version of JavaScript that helps catch errors early and improve code quality. Let me explains what it is, why it’s useful, and how to get started.
  • What’s New in Grafana 12.0May 08, 2025. Explore Grafana 12.0's new features like Git Sync, dynamic dashboards, and enhanced drilldowns. Perfect for beginners seeking practical insights.
  • Build & Deploy Azure Function Using C# and Integration with Azure SQLMay 05, 2025. This article walks you through creating the function, connecting to SQL, and deploying it to Azure perfect for developers looking to build serverless apps with database support.
  • NoSQL vs. SQL: Which One to UseMay 02, 2025. Explore the key differences between SQL and NoSQL databases, including structure, scalability, use cases, and performance.
  • Vibe Coding with AI: Using Prompt Engineering to Build a Full C# Database SolutionMay 02, 2025. Discover how to harness the power of AI and prompt engineering to build a complete C# database solution.
  • Advanced C# Database Tricks for Power UsersMay 01, 2025. Explore advanced C# database techniques using ADO.NET, Entity Framework Core, and Dapper.
  • Artificial Intelligence and Education: Shaping the Future of LearningApr 28, 2025. Discover how Artificial Intelligence is transforming education by enabling personalized learning, smart classrooms, and intelligent tutoring.
  • You Need to Know 9 Things About the New Lambda Variance Rules of C#Apr 28, 2025. C# 14 introduces enhanced lambda variance rules, making lambdas more flexible, intuitive, and type-safe, empowering developers to build cleaner, reusable, and more modern C# applications effortlessly.
  • SQL Server CLR Integration and SSIS Automation with C#Apr 24, 2025. Learn how to enhance SQL Server functionality using CLR integration and automate SSIS packages with C#.
  • Advanced Database Programming with C# 14 and Microsoft SQL ServerApr 24, 2025. As of C# 14, Microsoft continues to evolve the language to provide more expressive, safe, and performant coding patterns.
  • Understanding Change Data Capture (CDC) and Its TypesApr 23, 2025. In this article we are going to learn about the CDC and types of CDC approaches. It helps keep data in sync without causing a heavy load on the database.
  • Order of Execution in LINQ QueriesApr 22, 2025. This article explains the difference between deferred and immediate execution, outlines the execution order, and shares best practices to write efficient and optimized LINQ queries for real-world applications.
  • Execution Process of SQL Queries vs Stored Procedures Apr 21, 2025. Dive deep into the internal execution process of SQL Server queries with this one-of-a-kind article comparing normal SQL queries and stored procedures.
  • .NET 8 - System.Linq.Dynamic.Core – using SQL LIKEApr 11, 2025. System.Linq.Dynamic.Core library does not support SQL LIKE, and I added support for it. Added SQL LIKE support to the System.Linq.Dynamic.Core in .NET 8 using a custom patch. Enables dynamic SQL pattern matching in EF8 projects where built-in LIKE functionality was missing.
  • Create Foreign Keys Dynamically in SQL Server DatabaseApr 10, 2025. Create the referential integrity constraint i.e. Foreign key dynamically in SQL Server database. This script dynamically adds foreign keys to all tables with a CompanyID column by scanning the database, ensuring they reference the Company table—ideal for retrofitting relational integrity.
  • Difference Between Compilation and Runtime Errors in .NETApr 08, 2025. In .NET development, errors occur at compile time or runtime. Understanding and handling compilation errors like syntax issues and runtime errors like exceptions ensures stable and reliable applications.
  • Azure Synapse Analytics Serverless and Dedicated SQL PoolsApr 02, 2025. This article explains in detail about what Azure Synapse Analytics is and a brief comparison of the different SQL runtime environments it provisions.
  • Basic Understanding of Architectural StyleApr 01, 2025. Understanding architectural style is key to appreciating how buildings and structures are designed. It involves the study of various styles, from classical to modern, and the principles behind each.
  • Mitigate OWASP A03:2021 – Injection Web Security TipsApr 01, 2025. ?Injection attacks, such as SQL Injection and Cross-Site Scripting (XSS), exploit vulnerabilities where untrusted data is improperly handled, leading to unauthorized command execution or data access. Mitigation strategies include input validation, parameterized queries, and adhering to secure coding practices to enhance web application security.
  • Creating DataFrames in PySpark Using Fabric NotebookMar 27, 2025. This article walks through defining schemas, specifying column names, and using SQL-like DDL in a Fabric Notebook. Explore StructType, StructField, and various ways to display and verify DataFrame content efficiently.
  • Enhancing SharePoint: New Features in Microsoft Lists FormsMar 27, 2025. This article covers new features such as conditional branching, logo addition, support for additional field types, and more. Learn how these updates can streamline your workflow and improve the user experience.
  • Understanding Conversion Functions in SQLMar 27, 2025. SQL conversion functions like CAST(), CONVERT(), TRY_CAST(), TRY_CONVERT(), and FORMAT() help change data types, format values, and handle errors efficiently.
  • Understanding Numeric Functions in SQLMar 27, 2025. SQL numeric functions simplify mathematical operations like rounding, power calculations, and random value generation. Functions like ABS(), CEILING(), FLOOR(), ROUND(), SQRT(), MOD(), and LOG() help with financial calculations, data analysis, and scientific computing.
  • Explanation of Date and Time Functions in SQLMar 26, 2025. SQL date and time functions help efficiently manipulate and retrieve date-related information. Common functions include GETDATE() for the current timestamp, DATEADD() for adding time intervals, DATEDIFF() for date differences, FORMAT() for formatting, and EOMONTH() for month-end dates.
  • Understanding System-Versioned Tables in SQLMar 25, 2025. System-versioned tables in SQL automatically track data changes, maintaining historical records for auditing and recovery. They consist of a main table (current data) and a history table (past records).
  • Prevent Accidental Data Deletion with Two Simple StrategiesMar 25, 2025. Recently, I came across several discussions on Communities where users shared their experiences with accidental data deletion.
  • Mastering SQL String FunctionsMar 25, 2025. SQL string functions help manipulate and process text data efficiently. This guide covers key functions like UPPER(), LOWER(), LEN(), LEFT(), RIGHT(), SUBSTRING(), REPLACE(), CONCAT(), LTRIM(), RTRIM(), CHARINDEX(), REVERSE(), and FORMAT(), demonstrating their usage with examples to improve query performance and readability.
  • Understanding Parameter Sniffing in SQL ServerMar 24, 2025. In SQL Server and other relational database systems, query execution performance is critical for handling large datasets efficiently. One common yet sometimes problematic optimization technique is Parameter Sniffing. While it can improve query performance.
  • Automating SCD Type 4 in Azure SQL Database with Azure Data FactoryMar 24, 2025. Learn how to automate Slowly Changing Dimension (SCD) Type 4 implementation in Azure SQL Database using Azure Data Factory.
  • SQL Tag Library in Java Server PageMar 21, 2025. JSTL SQL tags are used to access databases and are designed for low-volume Web-based applications.? JSTL SQL tags facilitate database interactions in JSP pages, enabling data source setup, query execution, updates, and transactions through tags like <sql:setDataSource>, <sql:query>, <sql:update>, and <sql: transaction>
  • Understanding Aggregate Functions in SQLMar 21, 2025. SQL aggregate functions help perform calculations on multiple rows, returning a single result. This article covers COUNT(), SUM(), AVG(), MIN(), MAX(), and advanced uses like GROUP BY, HAVING, CASE, PARTITION BY, and DISTINCT.
  • Understanding Scalar Functions in SQLMar 21, 2025. This article explores common functions like LEN(), UPPER(), LOWER(), ROUND(), GETDATE(), ABS(), SQRT(), SUBSTRING(), and REPLACE(), along with advanced usage, computations, and custom scalar functions for efficient queries.
  • Understanding SQL Execution PlansMar 20, 2025. An SQL execution plan outlines how a database executes a query, detailing operations like table scans, index seeks, and joins. Analyzing these plans is essential for optimizing query performance.
  • Understanding SQL CTE (Common Table Expression)Mar 19, 2025. A Common Table Expression (CTE) in SQL is a temporary result set that improves query readability and performance. CTEs simplify complex queries, support recursive operations, and help with aggregation and multi-step calculations.
  • Explicit Loading in ASP.NET Core Web APIMar 18, 2025. Explicit Loading in ASP.NET Core Web API is a technique used to manually retrieve related data from the database when needed, using LoadAsync() on navigation properties. Unlike eager loading (Include()) or lazy loading, explicit loading provides better control over database queries, improving performance and efficiency. It is useful when related data is conditionally required.
  • Implementing SCD Type 4 in Azure SQL Database: A Step-by-Step GuideMar 16, 2025. Learn how to implement SCD Type 4 in Azure SQL Database using a structured approach with staging, dimension, and history tables. This guide covers real-world use cases, SQL implementation, and execution scenarios for efficient historical data management.
  • Setting Up Microsoft Entra Service Principal for Azure RBAC and Connecting to Fabric SQL DatabaseMar 03, 2025. This article explains creating a Service Principal, assigning role-based access, and securely authenticating to the database, ensuring seamless integration and enhanced security in your Azure environment.
  • Automate Email Sending Using SSIS Script TaskFeb 28, 2025. This article is about Automate Email Sending Using SSIS Script Task
  • Eliminating Unnecessary DELETE OperationsFeb 28, 2025. SQL Server performance issues often stem from easy fix bottle necks that can be fixed with the right tuning strategies. This short blog will focus on the DELETE statement.
  • Azure SQL Database: Scalable & Secure Cloud SolutionFeb 26, 2025. Azure SQL Database is a fully managed cloud database service by Microsoft, offering high availability, scalability, security, AI-driven performance tuning, automated backups, threat protection, and seamless integration with Azure services.
  • Boost SQL Server Performance with Memory-Optimized TablesFeb 25, 2025. Memory-optimized table variables in SQL Server provide a powerful way to enhance query performance by leveraging In-Memory OLTP. Unlike traditional table variables, they reduce disk I/O and improve execution speed.
  • Getting Started with EF Core: Part 1Feb 24, 2025. Entity Framework Core (EF Core) is a powerful ORM for .NET applications, simplifying database interactions. In this comprehensive guide (Part 1), we’ll cover the basics, including setup, configuration, and the code-first approach.
  • Entity Framework Core 9: Ultimate Performance Tuning & Best PracticeFeb 21, 2025. Entity Framework is a versatile and powerful ORM, but its performance depends on how it’s used. By following these best practices and leveraging the new features in .NET 9, you can build high-performance applications that scale efficiently.
  • Power of Dapper in .Net Core Feb 16, 2025. Dapper is a high-performance micro ORM for .NET Core, known for its speed and efficiency in database access. It simplifies SQL execution, object mapping, and data retrieval while maintaining flexibility.
  • Explaining Aggregate Functions in SQLFeb 14, 2025. Learn about SQL Aggregate Functions like SUM, COUNT, AVG, MIN, and MAX. These functions help perform calculations on grouped data, such as finding totals, averages, and minimum or maximum values, making data analysis more efficient.
  • Different Type of Modern Function in JavaScriptFeb 14, 2025. Explore JavaScript's modern functions, including arrow functions, async/await, and anonymous functions. This article covers IIFE, event handlers, and promises with practical examples for efficient coding in JavaScript.
  • Databricks Unity Catalog: Mastering Metastore and NamespaceFeb 10, 2025. Databricks Unity Catalog provides a unified governance layer with a three-level namespace (Catalog, Schema, Table) for efficient data organization, access control, and sharing across workspaces, improving security and collaboration.
  • Getting Started with dbt (Data Build Tool) in Microsoft FabricFeb 10, 2025. In this article, we will learn how to get started with DBT (Data Build Tool) in Microsoft Fabric for efficient data transformation and modeling.
  • Explain SSIS Designer for NewbiesFeb 07, 2025. Learn how to create and manage SSIS packages using SSIS Designer in SQL Server Data Tools (SSDT). Explore key components like Control Flow, Data Flow, Parameters, Event Handlers, Package Explorer, and Connection Managers.
  • Reduce NULL Storage in SQL Server with Sparse ColumnsFeb 05, 2025. SQL Server Sparse Columns optimize storage by not allocating space for NULL values, improving efficiency. They support filtered indexes and column sets for dynamic queries but add a 4-byte overhead for non-NULL values, requiring careful use.
  • Set up dbt for Fabric SQL DatabaseFeb 04, 2025. Learn how to set up and use the dbt-sqlserver adapter for Microsoft Fabric SQL Database to transform data, run models, and validate results using dbt’s SQL-based transformation framework.
  • A Better .NET SQL Builder: KnightMoves.SqlObjectsFeb 04, 2025. KnightMoves.SqlObjects is a .NET SQL builder that is built entirely on objects, making it orders of magnitude more powerful and feature-rich than any string manipulating SQL builder could ever be. If you use SQL in your .NET application with ORMs like Dapper, for example, this library is for you.
  • Understanding Typeof in JavaScriptFeb 04, 2025. The typeof operator in JavaScript is used to determine the type of a given variable or expression. It helps identify primitive types like string, number, boolean, undefined, and symbol, as well as objects and functions.
  • Unlocking the Power of SQL for ETL Feb 03, 2025. SQL is crucial in ETL processes, enabling data extraction, transformation, and loading into databases, data warehouses, or lakes. It helps in real-time analytics, reporting, and machine learning, making it essential for data engineers.
  • Installing and Using GitHub Copilot in Azure Data StudioJan 31, 2025. Azure Data Studio helps manage databases and write SQL queries. With GitHub Copilot, it auto-suggests code completions, making complex SQL tasks easier, including writing queries, using JOINs, and generating reports efficiently.
  • ETL Pipeline using Microsoft SQL Server Integration ServicesJan 31, 2025. This article is about building ETL (Extraction, Transformation and Loading) pipeline using SQL Server Integration Services (SSIS).
  • Exploring Snowflake SQL New Capabilities Using SELECT StatementJan 29, 2025. Learn how to leverage new features for efficient data querying, optimization, and advanced analytics in Snowflake’s cloud data platform. Perfect for data professionals.
  • Understanding Precision in SQL Server CalculationsJan 24, 2025. Learn why SQL Server calculations can produce different results depending on the approach used. Discover how single-step and multiple-step calculations handle precision and rounding, and how to achieve consistent outcomes with explicit rounding.
  • How to Fix Recovery Pending State in MS SQL Server DatabaseJan 24, 2025. Learn about the causes of SQL Server's "Recovery Pending" state, methods to resolve it, and preventive measures. Explore manual fixes, recovery tools, and best practices to ensure database integrity.
  • Differences Between TRUNCATE and DELETE in SQL ServerJan 22, 2025. Learn the key differences between TRUNCATE and DELETE in SQL Server, two commands used to remove data from tables. Understand their syntax, performance impact, transaction logging, and use cases.
  • How to Create A Pivot Table in PostgreSQLJan 22, 2025. This article covers using crosstab functions, grouping, and SQL queries to pivot rows into columns, making it easier to analyze complex datasets. Perfect for data analysis and reporting tasks in PostgreSQL.
  • How to Implement Search Function in PowerAppsJan 22, 2025. Learn how to implement a dynamic search function in Power Apps to filter data from sources like SharePoint. This article covers step-by-step instructions for adding search features, improving usability, and boosting app performance.
  • SQL Server – Query Performance – Database Maintenance can HelpJan 14, 2025. To improve query performance in an ASP.NET MVC application using SQL Server, periodic database maintenance steps like updating statistics and defragmenting indexes are essential. This includes manual or automatic execution for optimal results.
  • Transaction in SQL ServerJan 13, 2025. This article covers the basics of SQL transactions, including BEGIN, COMMIT, and ROLLBACK commands, ACID properties, isolation levels, and error-handling techniques for effective database management.
  • Local and Global Temporary Tables in SQL ServerJan 13, 2025. Discover the differences between local and global temporary tables in SQL Server. Learn how to create, use, and manage temporary tables effectively.
  • AI Roadmap: How to Go from Beginner to IntermediateJan 10, 2025. This article covers essential Python concepts, libraries (NumPy, Pandas, Scikit-learn, Matplotlib, SciPy), and machine learning frameworks (PyTorch, HuggingFace & Gradio), helping beginners progress to advanced proficiency in software development and data science.
  • Printing Different Types of Star Patterns in Java with CodeJan 09, 2025. Star pattern programs in Java demonstrate the use of nested loops and control structures, creating shapes like squares, pyramids, diamonds, and hollow squares with illustrative code examples and outputs.
  • Azure SQL Database - Configure Job using Elastic AgentsJan 07, 2025. This article covers setting up Elastic Job agents, creating jobs, and automating tasks across multiple databases. Streamline database management, schedule tasks efficiently, and enhance performance with Elastic Database Jobs.
  • Understand the Concept of Shallow Copy and Deep Copy in C#Jan 06, 2025. Learn the difference between shallow and deep copying in C#. Explore their behavior, implementation, and use cases with practical code examples, helping you make informed decisions for object duplication scenarios.
  • Create Database-Scoped Users for Microsoft Entra Security GroupsJan 06, 2025. In modern cloud environments, managing access to databases at scale can be challenging. By integrating Azure SQL with Microsoft Entra (formerly Azure Active Directory) Security Groups, you can streamline access control while ensuring secure and efficient database operations.
  • Understanding the JavaScript Object Notation (JSON)Dec 31, 2024. JSON (JavaScript Object Notation) is a lightweight, human-readable data format used for data interchange between web applications and servers. It supports key-value pairs, arrays, and objects, making it easy to parse and widely supported across programming languages.
  • Using Derived Column Task in SQL Server Integration ServicesDec 30, 2024. The Derived Column Task in SQL Server Integration Services (SSIS) allows you to transform or modify data within your ETL process. It enables the creation of new columns or updates to existing ones using SSIS expressions.
  • Essential C# KeywordsDec 25, 2024. This article explains important C# keywords that help in writing more efficient code. It covers keywords like volatile, value, get, set, yield, partial, and where, describing their uses in a simple manner. These concepts are essential for anyone looking to improve their C# programming skills.
  • Hello World! In 20 Different Programming LanguagesDec 23, 2024. In this article, we are going to see how to print “Hello World” in 20 different programming languages. Explore how to print "Hello, World!" in 20 popular programming languages, showcasing syntax differences, language history, and usage, serving as a beginner-friendly guide for developers starting their coding journey.
  • Conditional Split in SQL Services Integration Services (SSIS)Dec 23, 2024. Conditional Split in SQL Server Integration Services (SSIS) allows you to route data based on specific conditions within a data flow. It is used to direct data into different paths, enabling dynamic data transformation and filtering.
  • Understanding Deconstruction in C#Dec 22, 2024. Deconstruction in C# and its use. Explore C# deconstruction to simplify object breakdown into variables using tuples or custom types, improving code readability, conciseness, and flexibility while enhancing pattern-matching capabilities for efficient data handling.
  • SQL Exists: Usage, Syntax, and ExamplesDec 19, 2024. The "SQL EXISTS" clause is used to test whether a subquery returns any records. It's commonly used in conditional statements to improve query performance. This article covers the syntax, usage, and practical examples of how to implement the EXISTS clause in SQL queries effectively.
  • Create FTP Task in SQL Server Integration Services Dec 19, 2024. Learn how to create and configure an FTP Task in SQL Server Integration Services (SSIS). This task simplifies automated file transfers using the FTP protocol, making it essential for ETL processes.
  • Unlocking Faster INSERT Operations in SQL Server with TABLOCKDec 17, 2024. In this article learn how using the TABLOCK hint in SQL Server can significantly speed up INSERT operations by reducing logging overhead and enabling parallel insertions.
  • Understanding the AI_EXTRACT SQL Function in DatabricksDec 12, 2024. This article dives into the mechanics of AI_EXTRACT, its syntax, and various use cases with examples. AI_EXTRACT in Databricks extracts structured data, like names and dates, from unstructured text using AI models. It integrates seamlessly with SQL workflows, enhancing data analysis and organization efficiency.
  • Automating Table Creation using SSISDec 10, 2024. In this article, we will see how to create a database table in SQL Server using the SSIS package. Learn how to create a database table in SQL Server using an SSIS package. Follow step-by-step instructions for automation.
  • Understanding Triggers in SQL ServerDec 09, 2024. SQL Server triggers are automated procedures executed on DML/DDL events. This guide explores trigger types, real-world examples, and implementations for logging, validation, and restriction in SQL Server databases.
  • Token Caching in .NET 8 with Microsoft Entra IDDec 07, 2024. Learn how to optimize .NET 8 web apps with token caching using Microsoft Entra ID. Discover in-memory and distributed caching strategies to boost performance, reduce latency, and improve scalability in authentication processes.
  • INSERT INTO and SELECT INTO: Which is Better?Dec 06, 2024. In this article, we’ll explore the differences between these two methods, their impact on temporary tables, and practical recommendations for SQL developers, data engineers, and DBAs. Using examples from the AdventureWorks2022 database, we’ll make the concepts clear and actionable.
  • ASP.NET Core CRUD using Dapper, .NET 8 using SQL ServerDec 05, 2024. Learn to build a CRUD (Create, Retrieve, Update, Delete) application in ASP.NET Core MVC using .NET 8 and Dapper ORM. This guide covers creating models, repositories, controllers, and Razor views with SQL Server integration.