`

sql server function example to find managed employees

 
阅读更多

Prepare data:

USE AdventureWorks2008
GO

CREATE TABLE HumanResources.Employee2
(
  EmployeeID int NOT NULL,
  ManagerID int NULL REFERENCES HumanResources.Employee2(EmployeeID),
  JobTitle nvarchar(50) NOT NULL,
  LastName nvarchar(50) NOT NULL,
  FirstName nvarchar(50) NOT NULL,
    CONSTRAINT PK_Employee2_EmployeeID PRIMARY KEY CLUSTERED (EmployeeID ASC)
);

INSERT INTO HumanResources.Employee2(EmployeeID,ManagerID,JobTitle,LastName,FirstName)
VALUES
  (1, NULL, 'CEO','Smith', 'Hunter'),
  (2, 1, 'CFO', 'Jones', 'Drew'),
  (3, 1, 'COO','Lenzy','Sheila'),
  (4, 1, 'CTO', 'Huntington', 'Karla'),
  (5, 4, 'VP of Engineering', 'Gutierrez', 'Ron'),
  (8, 5, 'VP of Engineering', 'Gutierrez', 'Ron'),
  (9, 5, 'Software Engineer', 'Bray', 'Marky'),
  (10 ,5, 'Data Architect', 'Cheechov', 'Robert'),
  (11 ,5, 'Software Engineer', 'Gale', 'Sue'),
  (6, 4, 'VP of Professional Services', 'Cross', 'Gary'),
  (7, 4, 'VP of Security','Lebowski','Jeff');

 

Define the function

USE AdventureWorks2008
GO

create function dbo.getManagedEmployee(@managerId int)
returns @employees table(
employeeId int,
managerId int
)
as
begin
insert @employees
select EmployeeID, ManagerID from HumanResources.Employee2 where managerid=@managerId

declare @current int
select @current=min(employeeid) from @employees where managerid=@managerid

while @current is not null
begin
insert @employees select * from getManagedEmployee(@current)
select @current=min(employeeid) from @employees where managerid=@managerid and employeeid>@current
end 
return
end
 

 

Call the function:

USE AdventureWorks2008
select * from getManagedEmployee(4)
 

 

 

分享到:
评论

相关推荐

    SQL Server Management Studio 19.3

    SQL Server Management Studio (SSMS) 是微软开发的一款用于管理和维护SQL Server的重要工具。版本19.3是该软件的一个更新,提供了对SQL Server数据库引擎、分析服务、集成服务、复制以及报告服务等组件的全面支持。...

    sqlserver Manage Studio(V18.8) 数据库提示工具

    SSMS V18.8通常会支持多个SQL Server版本,包括较新的Azure SQL Database和Azure SQL Managed Instance,这使得用户可以在一个统一的环境中管理不同版本的SQL Server实例。 5. **源码软件**: SSMS虽然不是开源...

    SQLSERVER 驱动包

    10. **云服务支持**:随着SQL Server在Azure云上的普及,驱动包也需支持Azure SQL Database和Azure SQL Managed Instance等云服务的连接。 总之,SQLSERVER驱动包是连接到SQL Server数据库的核心组件,它为各种编程...

    SQLServer Mac 用管理界面

    它支持多种数据库平台,包括SQL Server、Azure SQL Database、Azure SQL Managed Instance以及Azure Data Warehouse等。对于Mac用户而言,它是Navicat等传统工具的一个优秀替代品。 **主要功能** 1. **连接管理**...

    java-sqlserver-connect.jar包

    Java SQLServer Connect.jar包是Java开发者用来与Microsoft SQL Server数据库进行交互的重要工具。这个库集成了JDBC(Java Database Connectivity)驱动程序,使得Java应用程序能够通过标准的API连接到SQL Server...

    SQLServer高级开发与专业应用

    10. **云服务集成**:SQL Server可以与Azure无缝集成,支持Azure SQL Database和Azure SQL Managed Instance。理解云数据库的优势,以及如何迁移和管理云中的SQL Server实例。 通过对以上知识点的深入学习和实践,...

    微软推出Managed SQL Server全球推广计划.pdf

    【Microsoft Managed SQL Server全球推广计划】 微软推出的Managed SQL Server全球推广计划是一项旨在帮助企业提升数据库管理水平的重要举措。该计划从2007年4月11日至9月30日进行,核心是将System Center ...

    SQL server 驱动

    随着云计算的发展,SQL Server现在也有Azure SQL Database的驱动,如ADAL(Active Directory Authentication Library)支持Azure AD的身份验证,以及用于Azure SQL Managed Instance的最新驱动。 了解和正确选择...

    SQL Server数据库技术大全

    10. **云服务与Azure SQL**:随着云计算的发展,SQL Server也能在Azure云平台上运行,成为Azure SQL Database或Azure SQL Managed Instance,提供更灵活的部署和扩展选项。 总之,《SQL Server数据库技术大全》这...

    动软产生的代码改造为可以同时连接ORACLE和SQL SERVER两个数据库的WINFORM代码

    在实际项目中,有时我们需要让应用程序能够同时处理多种数据库,例如Oracle和SQL Server。这样的需求通常出现在数据迁移、数据同步或者多源数据访问的场景。标题提到的“动软”可能是指一个开发工具或框架,但具体...

    Quest.Toad.for.SQL.Server.v3.0.0.736

    Quest Toad for SQL Server是一款由Quest Software开发的专业数据库管理和开发工具,主要用于Microsoft SQL Server环境。在SQL Server管理员和开发人员的日常工作中,它扮演着至关重要的角色,提供了一整套功能强大...

    mysql,sqlserver,oracle的数据库驱动

    本文将深入探讨MySQL、SQL Server和Oracle这三大主流数据库系统的驱动及其相关知识。 MySQL驱动: MySQL是一款广泛使用的开源关系型数据库,它提供了多种数据库驱动,包括JDBC(Java Database Connectivity)、ODBC...

    深度对比Oracle与SQL Server

    5. Azure集成:SQL Server可以轻松迁移到Azure云环境,利用Azure SQL Database或Azure SQL Managed Instance。 三、对比分析 1. 性能:Oracle通常在处理大型企业级应用时表现出更高的性能,尤其是在处理复杂查询和...

    Sql Server 高级教程(全16课ppt)

    了解如何将SQL Server迁移到Azure云环境,使用Azure SQL Database或Azure SQL Managed Instance,以及如何利用Azure Data Factory进行云数据集成。 十三、SQL Server最新版本特性 探讨SQL Server最新版本(如SQL ...

    c#oracle数据库、迷你sql2000连接、sqlserver2008连接

    本文将详细阐述如何使用C#语言连接Oracle、迷你SQL2000以及SQL Server 2008这三个不同的数据库系统。 首先,我们来了解一下C#,它是由微软公司开发的一种面向对象的编程语言,广泛应用于Windows平台的软件开发。C#...

    SQL Server数据库企业应用系统开发

    10. **云服务集成**:SQL Server可与Azure云服务集成,提供SQL Database或SQL Managed Instance等服务。理解云数据库的优势、迁移过程及成本优化策略,能帮助企业灵活扩展其数据库架构。 通过深入学习以上知识点,...

    mysql sqlserver等数据库文档导出

    本话题将深入探讨涉及MySQL、SQL Server、Oracle、PostgreSQL和SQLite这五种常见数据库的文档导出过程,并介绍与之相关的库和组件。 首先,MySQL是一种广泛使用的开源关系型数据库管理系统,其提供了多种方式导出...

    英文原版-Learning SQL Server 2008 Reporting Services 1st Edition

    A step-by-step guide to getting the most of Microsoft SQL Server Reporting Services 2008 Microsoft SQL Server Reporting Services 2008 is the third generation Microsoft reporting software that is more...

    SQL2022-SSEI-Dev

    5. **云集成**:SQL Server 2022 很可能继续加强与 Azure 云平台的集成,提供混合云解决方案,如 Azure Arc 和 Azure SQL Managed Instance。这使得开发人员能够在本地和云端之间灵活地移动数据库,同时保持一致的...

    SQL Server 2005精髓

    SQL Server 2005 Reporting Services allows you to design, create, view, and manage reports. Reports can be distributed and managed over the Web. End users can create, publish, and share ad hoc reports-...

Global site tag (gtag.js) - Google Analytics