创建存储过程Navicat

创建存储过程

本主题介绍了如何通过使用 SQL Server Management Studio(开发IDE)
 
 和 Transact-SQL CREATE PROCEDURE 语句来创建 Transact-SQL 存储过程。
  • 开始之前: 权限

  • 创建存储过程,使用: SQL Server Management Studio、Transact-SQL

需要在数据库中有 CREATE PROCEDURE 权限,对在其中创建过程的架构有 ALTER 权限。

您可以使用以下项之一:

  • SQL Server Management Studio

  • Transact-SQL

使用 SQL Server Management Studio

在对象资源管理器中创建过程

  1. 对象资源管理器中,连接到某个数据库引擎实例,再展开该实例。

  2. 依次展开“数据库”、 AdventureWorks2012 数据库和“可编程性”

  3. 右键单击“存储过程”,再单击“新建存储过程”

  4. “查询”菜单上,单击“指定模板参数的值”

  5. “指定模板参数的值”对话框中,输入下列所示的参数值。

     
  6. 单击“确定”

  7. “查询编辑器”中,使用以下语句替换 SELECT 语句:

    Transact-SQL
    
                
                
    SELECT FirstName, LastName, Department FROM HumanResources.vEmployeeDepartmentHistory WHERE FirstName = @FirstName AND LastName = @LastName     AND EndDate IS NULL;
  8. 若要测试语法,请在“查询”菜单上,单击“分析”如果返回错误消息,则请将这些语句与上述信息进行比较,并视需要进行更正。

  9. 若要创建该过程,请在“查询”菜单上单击“执行”该过程作为数据库中的对象创建。

  10. 若要查看在对象资源管理器中列出的过程,请右键单击“存储过程”,然后选择“刷新”

  11. 若要运行该过程,请在对象资源管理器中右键单击存储过程名称 HumanResources.uspGetEmployeesTest,然后选择“执行存储过程”

  12. “执行过程”窗口中,输入 Margheim 作为参数 @LastName 的值,并且输入值 Diane 作为参数 @FirstName 的值。

注意事项 注意

验证所有用户的输入。 验证前请勿连接用户输入。 绝对不要执行根据尚未验证的用户输入构造的命令。

[返回页首]

使用 Transact-SQL

在查询编辑器中创建过程

  1. “对象资源管理器”中,连接到数据库引擎的实例。

  2. “文件”菜单中,单击“新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击“执行”该示例将使用其他过程名称创建与上述相同的存储过程。

    Transact-SQL
    USE AdventureWorks2012;
    GO
    CREATE PROCEDURE HumanResources.uspGetEmployeesTest2 
        @LastName nvarchar(50), 
        @FirstName nvarchar(50) 
    AS 
    
        SET NOCOUNT ON;
        SELECT FirstName, LastName, Department
        FROM HumanResources.vEmployeeDepartmentHistory
        WHERE FirstName = @FirstName AND LastName = @LastName
        AND EndDate IS NULL;
    GO
    
  4. 若要运行该过程,请将以下示例复制并粘贴到一个新的查询窗口中,然后单击“执行”请注意,将显示指定参数值的不同方法。

    Transact-SQL
    EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';
    -- Or
    EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar';
    GO
    -- Or
    EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman';
    GO
    
          
          
创建过程:

1. 利用工具栏打开[Query]窗口编写sql:

注意:如果不用参数,红色方框里面的左右括号也是必要的

2.利用工具栏打开[Function]向导

 

存储过程的调用


1.[Query]中直接写SQL

CALL test( ' 城北 ');

 2.对象浏览器中[Functions]下找到该存储过程右键执行,然后输入参数

注意:如果参数是字符串,记得加单引号

 
          
          
实践练习:
tbl_student 
 
          
          
create PROCEDURE testStu(region varchar( 10))
BEGIN
select * from tbl_student where name =region;
end
 
call testStu('nick');
 
result:
 
 
dao层code:
          
          
public Student get(int id) {
        Connection con = null;
        PreparedStatement psmt = null;
        ResultSet r = null;
        Student stu = new Student();
        try {
            con = JdbcUtil.getConnection();
            //String sql = "select * from tbl_student where id = ?";
            String sql = "call findStuById(?)";//用存储过程更利于代码维护
            psmt = con.prepareStatement(sql);
            psmt.setInt(1, id);
            r = psmt.executeQuery();
            if (r.next()) {
                stu.setId(r.getInt("id"));
                stu.setSno(r.getString("sno"));
                stu.setName(r.getString("name"));
                stu.setAge(r.getInt("age"));
                stu.setClassId(r.getInt("class"));
                stu.setHobby(r.getString("hobby"));
                stu.setGrade(r.getInt("grade"));
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            JdbcUtil.dealException(r, psmt, con);
        }
        return stu;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值