Fundamentals of Stored Procedures

http://www.functionx.com/sqlserver/Lesson17.htm

 

Stored Procedures

 

 

Fundamentals of Stored Procedures

 
 

Introduction

 

In Lesson 6, we had an introduction to some types of actions that could be performed on a database. These actions were called functions. The SQL provides another type of action called a stored procedure. If you have developed applications in some other languages such as Pascal or Visual Basic, you are probably familiar with the idea of a procedure. Like a function, a stored procedure is used to perform an action on a database.

 

Practical Learning Practical Learning: Introducing Stored Procedures

 
  1. Start Microsoft SQL Server Management Studio and log in to your server
  2. On the main menu, click File -> New -> Query With Current Connection
  3. To create a new database, enter the following code in the window
     
    -- =============================================
    -- Database: WattsALoan
    -- =============================================
    USE master
    GO
    -- Drop the database if it already exists
    IF  EXISTS (
    	SELECT name 
    		FROM sys.databases 
    		WHERE name = N'WattsALoan'
    )
    DROP DATABASE WattsALoan
    GO
    
    CREATE DATABASE WattsALoan
    GO
    -- =========================================
    -- Table: Employees
    -- =========================================
    USE WattsALoan
    GO
    
    IF OBJECT_ID('dbo.Employees', 'U') IS NOT NULL
      DROP TABLE dbo.Employees
    GO
    
    CREATE TABLE dbo.Employees
    (
        EmployeeID int identity(1,1) NOT NULL,
        EmployeeNumber nchar(10) NULL,
        FirstName varchar(20) NULL,
        LastName varchar(10),
        FullName AS ((LastName+ ', ') + FirstName),
        Title varchar(100),
        HourlySalary money,
        Username varchar(20),
        Password varchar(20),
        CONSTRAINT PK_Employees PRIMARY KEY(EmployeeID)
    )
    GO
    INSERT INTO dbo.Employees(EmployeeNumber, FirstName, LastName, Title, HourlySalary)
    VALUES('293747', 'Jeanne', 'Tryler', 'Accounts Manager', 22.24);
    GO
    INSERT INTO dbo.Employees(EmployeeNumber, FirstName, LastName, Title, HourlySalary)
    VALUES('492947', 'Helene', 'Gustman', 'Accounts Representative', 14.55);
    GO
    INSERT INTO dbo.Employees(EmployeeNumber, FirstName, LastName, Title, HourlySalary)
    VALUES('804685', 'Ernest', 'Thomas', 'Accounts Representative', 12.75);
    GO
    -- =========================================
    -- Table: LoanTypes
    -- =========================================
    USE WattsALoan
    GO
    
    IF OBJECT_ID('dbo.LoanTypes', 'U') IS NOT NULL
      DROP TABLE dbo.LoanTypes
    GO
    
    CREATE TABLE dbo.LoanTypes
    (
        LoanTypeID int identity(1,1) NOT NULL, 
        LoanType varchar(50) NOT NULL, 
        CONSTRAINT PK_LoanTypes PRIMARY KEY(LoanTypeID)
    );
    GO
    INSERT INTO LoanTypes(LoanType) VALUES('Personal Loan');
    GO
    INSERT INTO LoanTypes(LoanType) VALUES('Car Financing');
    GO
    INSERT INTO LoanTypes(LoanType) VALUES('Credit Card');
    GO
    INSERT INTO LoanTypes(LoanType) VALUES('Furniture Loan');
    GO
    -- =========================================
    -- Table: Customers
    -- =========================================
    USE WattsALoan
    GO
    
    IF OBJECT_ID('dbo.Customers', 'U') IS NOT NULL
      DROP TABLE dbo.Customers
    GO
    
    CREATE TABLE dbo.Customers
    (
        CustomerID int identity(1,1) NOT NULL,
        DateCreated datetime NULL,
        FullName varchar(50) NOT NULL,
        BillingAddress varchar(100),
        BillingCity varchar(50),
        BillingState varchar(50),
        BillingZIPCide varchar(10),
        EmailAddress varchar(100),
        CONSTRAINT PK_Customers PRIMARY KEY(CustomerID)
    )
    GO
    INSERT INTO Customers(DateCreated, FullName,
        BillingAddress, BillingCity, BillingState,
        BillingZIPCide, EmailAddress)
    VALUES('2/26/2004', 'Julius Ramse',
           '927 Feuler Ave', 'Silver Spring', 
           'MD', '20904', 'ramses1990@netscape.net');
    GO
    INSERT INTO Customers(DateCreated, FullName,
        BillingAddress, BillingCity, BillingState,
    	BillingZIPCide)
    VALUES('06/22/2006', 'Gertrude Vaillant',
           '10055 Larsenic Rd', 'Takoma Park', 
           'MD', '20910');
    GO
    INSERT INTO Customers(DateCreated, FullName,
        BillingAddress,	BillingCity, BillingState,
    	BillingZIPCide, EmailAddress)
    VALUES('12/3/2004', 'James Barrouch',
           '4204 Fallon Drive', 'Silver Spring',
           'MD', '20906', 'barrouchj@hotmail.com');
    GO
    INSERT INTO Customers(DateCreated, FullName,
        BillingAddress,	BillingCity, BillingState,
    	BillingZIPCide)
    VALUES('08/02/2006', 'Christine Rougher',
           '825 Manning Street', 'Alexandria', 
           'VA', '22231');
    GO
    INSERT INTO Customers(DateCreated, FullName,
        BillingAddress,	BillingCity, BillingState,
    	BillingZIPCide, EmailAddress)
    VALUES('10/08/2006', 'Patrick Heller',
           '2480 Clarington Drive NW', 'Washington', 
           'DC', '20006', 'hellerp@yahooo.com');
    GO
    -- =========================================
    -- Table: LoanAllocation
    -- =========================================
    USE WattsALoan
    GO
    
    IF OBJECT_ID('dbo.LoanAllocations', 'U') IS NOT NULL
      DROP TABLE dbo.LoanAllocations
    GO
    
    CREATE TABLE dbo.LoanAllocations
    (
        LoanAllocationID int identity(1,1) NOT NULL,
        DatePrepared datetime NOT NULL, 
        EmployeeID int NULL
    		CONSTRAINT FK_LoanPreparer
    		FOREIGN KEY REFERENCES Employees(EmployeeID),
        CustomerID int NOT NULL
    		CONSTRAINT FK_LoanReceiver
    		FOREIGN KEY REFERENCES Customers(CustomerID),
        AccountNumber char(10),
        LoanTypeID int NOT NULL
    		CONSTRAINT FK_LoanTypes
    		FOREIGN KEY REFERENCES LoanTypes(LoanTypeID),
        LoanAmount money NOT NULL,
        InterestRate decimal(6,2) NOT NULL,
        Periods decimal(6,2) NOT NULL,
        InterestAmount AS ((LoanAmount*(InterestRate/(100)))*(Periods/(12))),
        FutureValue AS (LoanAmount+(LoanAmount*(InterestRate/(100)))*(Periods/(12))),
        MonthlyPayment AS ((LoanAmount+(LoanAmount*(InterestRate/(100)))*(Periods/(12)))/Periods),
        Notes Text,
        CONSTRAINT PK_LoanAllocations PRIMARY KEY(LoanAllocationID)
    )
    GO
    INSERT INTO LoanAllocations(DatePrepared, EmployeeID,
    	CustomerID, AccountNumber, LoanTypeID, LoanAmount,
        InterestRate, Periods, Notes)
    VALUES('2/26/2004', 2, 1, '9171394', 4, 6500.00, 12.65, 36, 
           'The loan will be delivered by our furniture business partner Helios Furnian');
    GO
    INSERT INTO LoanAllocations(DatePrepared, EmployeeID,
    	CustomerID, AccountNumber, LoanTypeID, LoanAmount,
        InterestRate, Periods, Notes)
    VALUES('06/22/2007', 2, 2, '8628064', 2, 16500.00, 10.20, 60, 
           'For this car loan, our partner Arlington Honda will process and deliver the car.');
    GO
    INSERT INTO LoanAllocations(DatePrepared, EmployeeID,
    	CustomerID, AccountNumber, LoanTypeID, LoanAmount,
        InterestRate, Periods, Notes)
    VALUES('12/3/2006', 1, 3, '8468364', 3, 500.00, 18.65, 48, 
           'This is a regular credit card.');
    GO
    INSERT INTO LoanAllocations(DatePrepared, EmployeeID,
    	CustomerID, AccountNumber, LoanTypeID, LoanAmount,
        InterestRate, Periods, Notes)
    VALUES('08/02/2006', 3, 4, '2483047', 1, 3500.00, 12.74, 36, 
           'This is personal/cash loan allocated to a customer who walked in the store and requested it.');
    GO
    INSERT INTO LoanAllocations(DatePrepared, EmployeeID,
    	CustomerID, AccountNumber, LoanTypeID, LoanAmount,
        InterestRate, Periods, Notes)
    VALUES('10/08/2006', 2, 5, '1311804', 4, 22748.36, 12.28, 60, 
           'This is a regular car financing loan');
    GO
    -- =========================================
    -- Table: Payments
    -- =========================================
    USE WattsALoan
    GO
    
    IF OBJECT_ID('dbo.Payments', 'U') IS NOT NULL
      DROP TABLE dbo.Payments
    GO
    
    CREATE TABLE dbo.Payments
    (
        PaymentID int identity(1, 1) NOT NULL,
        PaymentDate datetime NOT NULL, 
        EmployeeID int NULL
    		CONSTRAINT FK_Employees
    		FOREIGN KEY REFERENCES Employees(EmployeeID),
        LoanAllocationID int NOT NULL
    		CONSTRAINT FK_LoanAllocations
    		FOREIGN KEY REFERENCES LoanAllocations(LoanAllocationID),
        PaymentAmount money NOT NULL,
        Balance money,
        Notes Text,
        CONSTRAINT PK_Payments PRIMARY KEY(PaymentID)
    )
    GO
  4. To execute the code, press F5
  5. In the Object Explorer, expand the Databases node if necessary and expand WattsALoan
  6. Click Database Diagram
  7. When the message box comes up, read it and click Yes
  8. Right-click Database Diagram and click New Database Diagram...
  9. In the dialog box, double-click each table and, when all tables have been added, click Close
     
  10. Save the diagram as dgmWattsALoan and close it 

 

内容概要:本文档是关于“基于小信号扫频辨识的光伏并网逆变器正负序交互稳定性分析”的博士论文复现资源,配套提供Matlab代码与Simulink仿真实现。内容聚焦于弱电网条件下光伏并网逆变器的稳定性问题,深入研究其正负序阻抗建模方法、小信号扫频辨识技术及正负序交互失稳机理。通过构建高精度的系统仿真模型,采用扫频法提取逆变器在不同控制环路(如锁相环、电流环)影响下的序阻抗特性,并结合奈奎斯特稳定性判据评估其与电网阻抗之间的交互作用,系统性地揭示了宽频带振荡的产生机制。该资源完整还原了论文中的关键理论推导与仿真验证流程,适用于从事新能源并网、电力电子系统建模与稳定性分析的研究人员进行学习、复现与二次开发。; 适合人群:具备电力系统、电力电子与自动控制理论基础,熟练掌握Matlab/Simulink仿真工具,从事新能源发电并网、逆变器控制策略或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 复现并验证博士论文中提出的光伏逆变器正负序阻抗建模与小信号扫频分析方法;② 深入理解弱电网环境下由正负序耦合引发的交互失稳现象及其物理机理;③ 掌握基于阻抗法的并网系统稳定性分析流程,为虚拟同步机、构网型控制等先进控制策略的稳定性研究提供技术参考与仿真支撑。; 阅读建议:建议学习者结合提供的代码与仿真模型,首先深入理解序阻抗建模与扫频辨识的基本原理,然后逐步调试仿真程序,重点关注锁相环动态、电流控制器参数对序阻抗曲线的影响,最终掌握从模型搭建、扫频测试到稳定性判据应用的全流程分析能力。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 一、项目概述 本项目是一个依托于JavaWeb技术构建的销售管理系统,主要面向计算机专业进行毕业设计的学生以及寻求项目实践机会的Java学习者。内容涵盖:项目源代码、数据库初始化脚本、所需软件工具、详细的项目文档等,该项目能够直接用于毕业设计任务。所有功能均已经过严谨的调试环节,保证其可执行性! 二、技术架构 ​后端框架:采用JSP技术、Servlet技术以及JDBC数据库交互技术 ​数据库系统:选用MySQL作为数据存储解决方案 开发平台:基于JDK环境,利用Eclipse作为开发工具,并部署于Tomcat服务器上 三、系统特性 该销售管理系统基于B/S架构设计,使用JAVA编程语言进行开发,并以MySQL数据库作为数据存储支撑。系统内设有两种用户角色:普通员工与系统管理员。系统的核心功能模块具体包括: 1.系统维护功能 涵盖系统登录验证、安全退出机制、用户密码修改功能 2.人力资源模块 包含员工账户管理、新员工账户添加、员工信息检索服务 3.商品资源管理模块 实现商品信息维护、新增商品登记、商品资料查询功能 4.仓储设施管理模块 提供货架资源管理、货架信息录入、货架状态查询服务 5.产品分类管理模块 支持商品类别维护、新增分类操作 6.采购业务管理模块 包含采购记录管理、新增采购信息、采购数据查询功能 7.销售交易管理模块 实现销售记录管理、新增销售数据、销售信息检索服务 8.库存控制模块 提供库存数量盘点、库存状态查询、低库存预警功能 9.财务分析模块 支持利润数据查询、利润统计报表、盈利能力分析服务 该系统具备功能全面性、界面设计美观性、操作流程简便性、功能覆盖完整性...
内容概要:本文档围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍了基于Matlab平台的系统建模、动力学仿真与控制算法实现过程。研究涵盖了四轴飞行器的非线性动力学建模、姿态与轨迹控制策略设计、仿真系统搭建及结果分析等关键环节,旨在深入理解飞行器在复杂环境下的动态行为与控制机制。文档不仅提供了完整的Matlab仿真代码实现,还系统梳理了相关科研方向,如路径规划、无人机控制、卡尔曼滤波状态估计、信号处理与电力系统优化等,展现出该研究在多学科交叉应用中的广泛价值。配套资源通过网盘与公众号形式提供,便于读者下载复现与拓展研究。; 适合人群:具备一定Matlab编程基础和自动控制理论知识,从事自动化、航空航天、机器人、控制工程及相关领域的科研人员、高校研究生及中初级研发工程师;尤其适合开展无人机仿真、控制系统设计或算法验证的研究者。; 使用场景及目标:①用于四轴飞行器非线性动力学建模与先进控制算法(如PID、LQR、非线性控制等)的设计与仿真验证;②作为教学工具帮助学生掌握飞行器三自由度运动原理与仿真方法;③支持姿态估计、轨迹跟踪、卡尔曼滤波等关键技术的算法研究与性能测试;④为无人机路径规划、微电网控制、信号处理等领域提供方法参考与代码借鉴。; 阅读建议:建议读者结合文中提供的网盘资源与公众号资料,按照模块顺序逐步学习,重点关注Matlab代码实现细节与系统建模逻辑,动手复现仿真流程,并尝试与同类研究(如VSG控制、路径规划、信号处理等)进行对比分析,以激发创新思路与深化技术理解。
源码直接下载地址: https://pan.quark.cn/s/297a7cc3060a EJTAG(即嵌入式JTAG)是在集成电路(IC)设计领域中用于测试与调试的一种技术,其基础是IEEE 1149.1 JTAG标准。EJTAG在传统边界扫描(Boundary-Scan)的基础上进行了功能拓展,使开发者能够直接进入芯片内部的寄存器和内存区域,进而开展更为深入的调试工作。"ejtag-debug-v3.25.19.tar.gz"是一个压缩文件,其中包含了EJTAG调试工具,其版本标识为3.25.19,并可能集成有驱动程序、软件应用以及其他相关资源。EJTAG驱动程序充当了连接EJTAG接口硬件设备与计算机之间的纽带,它主要负责处理通信协议,从而让开发者能够通过计算机上的软件对目标设备实施调试。当前版本的驱动程序或许是为特定的硬件平台或操作系统进行了适配,例如支持多种处理器架构或多种操作系统,诸如Windows、Linux或Mac OS。压缩文件内的"ejtag-debug"目录很可能会包含以下组成部分: 1. **驱动程序**:安装所需的驱动文件,旨在帮助在操作系统中配置EJTAG硬件接口。 2. **用户手册或文档**:提供详尽的指导,说明如何安装和使用EJTAG驱动及调试工具,涵盖系统需求、配置流程、故障排除等内容。 3. **API参考**:为开发者提供接口文档,解释如何在应用程序中集成EJTAG功能。 4. **示例代码**:展示如何运用EJTAG驱动进行调试的代码实例或项目范例。 5. **工具软件**:EJTAG调试器,可能具备图形界面,让用户能够操控调试过程,查看和修改内存、跟踪执行等。 6. **库文件**:可能集成必要的动态链接库(DLLs)或...
内容概要:本文系统研究了基于Neh算法与禁忌搜索算法的混合优化策略在解决排列型流水车间调度问题(PFSP)中的应用,旨在最小化最大完工时间(makespan)。研究首先阐述了Neh算法作为一种构造性启发式方法在生成高质量初始解方面的优势,随后引入禁忌搜索算法以增强局部搜索能力,有效避免陷入局部最优,提升解的质量。通过Python语言实现了完整的算法框架,包括问题建模、调度编码、邻域结构设计及禁忌表管理,并在标准测试实例上进行了实验验证。结果表明,相较于单一算法,所提出的混合算法在求解精度与稳定性方面均表现出更优的性能,充分体现了启发式与元启发式算法融合的有效性。; 适合人群:具备一定Python编程能力和运筹优化基础知识,从事智能制造、工业工程、自动化或相关领域的科研人员、研究生及企业研发技术人员。; 使用场景及目标:①深入理解Neh算法与禁忌搜索算法的核心思想及其在车间调度中的具体实现;②掌握混合优化算法的设计思路与编程技巧,用于解决NP-hard类调度问题;③为实际生产排程系统提供高效的算法原型与仿真工具支持。; 阅读建议:建议读者结合所提供的Python代码进行动手实践,重点理解算法流程、参数设置与调度评价指标的实现,鼓励尝试不同规模的测试案例或改进邻域结构以进一步提升算法性能。
内容概要:本文研究了基于遗传算法、元胞自动机邻域和随机重启爬山混合优化算法(GA-RRHC)在柔性车间调度问题中的应用,并提供了完整的Matlab代码实现。该方法融合了遗传算法的全局搜索能力、元胞自动机的局部邻域优化机制以及随机重启爬山算法的局部精细化搜索优势,构建了一种高效的混合优化策略,旨在解决柔性车间调度中复杂的组合优化问题,降低最大完工时间(makespan),提升生产效率与资源利用率。研究详细阐述了算法的设计原理、关键操作步骤、参数设置及其实现流程,并通过典型算例验证了算法的有效性和优越性,展现出良好的收敛性能和工程应用前景。; 适合人群:具备一定编程基础和优化理论知识,熟悉Matlab语言,从事智能制造、工业工程、自动化、运筹学或生产调度相关领域的高校研究生、科研人员及企业研发工程师。; 使用场景及目标:①应用于柔性制造系统中的实际生产调度优化,实现作业工序的高效排程;②作为智能优化算法的教学与科研案例,深入理解混合算法的设计思想、协同机制与实现技巧;③为解决其他NP-hard组合优化问题提供可复用的算法框架和技术参考。; 阅读建议:此资源以Matlab代码为核心载体,建议读者结合算法描述与代码逐行调试分析,重点关注三种算法的集成逻辑、邻域结构设计及参数敏感性分析,同时可尝试将其拓展至不同规模的调度实例或其他优化场景以深化理解和提升实践能力。
内容概要:本文系统介绍了一种融合灰狼优化算法(GWO)、BP神经网络与AdaBoost集成学习的复合预测模型,旨在提升复杂非线性系统的预测精度与泛化能力。该方法首先利用GWO算法优化BP神经网络的初始权重与阈值,有效缓解传统BP网络易陷入局部最优、收敛速度慢等问题;随后引入AdaBoost集成策略,进一步增强模型鲁棒性与预测性能。整个算法流程在Matlab平台上完整实现,涵盖数据预处理、参数优化、模型训练与结果分析等关键环节,具有较强的工程实用性与科研参考价值,特别适用于能源预测、负荷 forecasting 等实际应用场景,并为高水平学术论文的撰写提供可复现的技术支撑。; 适合人群:具备一定机器学习与智能优化算法基础,从事科研工作1-3年的研究生或研发人员,尤其适用于聚焦智能算法融合、能源系统预测、电力负荷建模等方向的研究者。; 使用场景及目标:①解决传统单一神经网络预测模型精度低、稳定性差的问题;②通过GWO-BP-AdaBoost多阶段融合策略提升整体预测性能;③为撰写SCI/EI级别学术论文提供创新性强、可复现的算法框架与代码实现方案。; 阅读建议:建议结合文中提供的Matlab代码进行实证操作,深入理解GWO优化BP网络参数的机制以及AdaBoost的迭代加权集成过程,可将其拓展应用于风电、光伏、交通流等时序预测任务,助力科研创新与成果转化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值