創建存儲過程Navicat

創建存儲過程

本主題介紹瞭如何通過使用 SQL Server Management Studio(開發IDE)
 
 和 Transact-SQL CREATE PROCEDURE 語句來創建 Transact-SQL 存儲過程。

需要在數據庫中有 CREATE PROCEDURE 權限,對在其中創建過程的架構有 ALTER 權限。

您可以使用以下項之一:

使用 SQL Server Management Studio

在對象資源管理器中創建過程

  1. 對象資源管理器中,連接到某個數據庫引擎實例,再展開該實例。

  2. 依次展開“數據庫”、 AdventureWorks2012 數據庫和“可編程性”

  3. 右鍵單擊“存儲過程”,再單擊“新建存儲過程”

  4. “查詢”菜單上,單擊“指定模板參數的值”

  5. “指定模板參數的值”對話框中,輸入下列所示的參數值。

     
  6. 單擊“確定”

  7. “查詢編輯器”中,使用以下語句替換 SELECT 語句:

    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. 將以下示例複製並粘貼到查詢窗口中,然後單擊“執行”該示例將使用其他過程名稱創建與上述相同的存儲過程。

    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. 若要運行該過程,請將以下示例複製並粘貼到一個新的查詢窗口中,然後單擊“執行”請注意,將顯示指定參數值的不同方法。

    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;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章