1. 程式人生 > >T-SQL 程式設計 儲存過程

T-SQL 程式設計 儲存過程

T-SQL程式設計

1.變數

全域性變數

變 量 含 義
@@ERROR 最後一個T-SQL錯誤的錯誤號
@@IDENTITY 最後一次插入的識別符號
@@LANGUAGE 當前使用的語言名稱
@@MAX_CONNECTIONS 可以建立的同時連線的最大數目
@@ROWCOUNT 受上一個SQL語句影響的行數
@@SERVERNAME 本地伺服器的名稱
@@SERVICENAME 該計算機上的SQL服務名稱
@@TIMETICKS 當前計算機每刻度的微秒數
@@TRANSCOUNT 當前連線開啟的事務數
@@VERSION SQL Server的版本資訊

區域性變數 關鍵字DECLARE

宣告:DECLARE @變數名 資料型別

示例:DECLARE @name varchar(8)

賦值:

  方法1:SELECT @a=1, @b=3
  方法2:SET @a=2
  (注:SELECT一次可以給多個變數賦值,而SET只能賦值一個)

2.輸出語句

語法:print 變數或字串

SELECT 變數 as 自定義列名

示例:print ‘伺服器名稱’+ @@SERVERNAME

SELECT @@SERVERNAME as ‘伺服器名稱’

3.邏輯控制語句

IF-ELSE條件語句

語法:IF(條件)

BEGIN

語句或語句塊1

END

ELSE

BEGIN

語句或語句塊2

END

WHILE迴圈語句

語法:WHILE(條件)

BEGIN

語句或語句塊

BREAK

END

CASE多分支語句

語法:CASE

WHEN 條件1 THEN 結果1

WHEN 條件1 THEN 結果1

ELSE 其它結果

GO批處理語句

逐條語句執行

子查詢

1.子查詢語法

示例:SELECT * FROM表名WHERE 欄位>(子查詢)

(注:子查詢作為WHERE條件的一部分也可和DELETE,SELECT,UPDATE,INSERT一起連用,語法類似SELECT)

2.IN 和NOT IN子查詢

示例1:SELECT * FROM表名WHERE 欄位 IN (子查詢)

示例2:DELETE * FROM 表名 WHERE 欄位 NOT IN(子查詢)

(注:IN後面的子查詢可以返回多條記錄,如果查詢結果為多條用=會出現編譯錯誤)

3.EXISTS 和NOT EXISTS子查詢

示例:IF EXISTS (子查詢)

BEGIN

語句塊

END

(注:EXISTS一般用於子查詢的存在檢測,結果非空返回真,否則返回假)

事務

事務(Transaction)是單個的工作單元。如果某一事物成功,則在該事務中進行的所有資料更改均會提交,成為資料庫的永久組成部分。如果事務遇到錯誤切必須取消或回滾,則所有資料更改均被清除

語法:開始事務:BEGIN TRANSACTION

回滾事務:ROLLBACK TRANSACTION

提交事務:COMMIT TRANSACTION

索引

索引提供指標以指向儲存在表中指定列的資料值,然後根據指定的排列次序排列這些指標。資料庫使用索引的方式與使用書的目錄很相似:通過搜尋索引找到特定的值,然後跟隨指標到達包含該值的行

UNIQUE :唯一索引(可選)

CLUSTERED:聚集索引(如:拼音)

NONCLUSTERED:非聚集索引(如:筆畫)

FILLFACTOR:填充因子(1-100)

1.建立索引

示例:

CREATE UNIQUE CLUSTERED INDEX 索引名

ON 表名 (列名1,列名2)

WITH FILLFACTOR=30

2.刪除索引

示例:DROP INDEX 表名.索引名

3.使用索引查詢

示例:

SELECT * FROM stuMarks

(INDEX = 索引名)

WHERE writtenExam BETWEEN 60 AND 90

檢視

使用檢視是另一種檢視資料庫中一個或多個表中資料的方法,檢視是一種虛擬表,通常是作為來自一個或多個表的行或列的子集建立的,它的行和列來自查詢中引用的表

1.建立檢視

語法:CREATE VIEW 檢視名

AS SELECT語句

2.刪除檢視

語法:DROP VIEW 檢視名

儲存過程

儲存過程是SQL語句和控制流語句的預編譯集合,儲存在資料庫內,可由應用程式呼叫執行,它可以接收引數,輸出引數,返回單個或多個結果集以及返回值

1.系統儲存過程

系統儲存過程 說明
sp_databases 列出伺服器上的所有資料庫
sp_helpdb 報告有關知道那個資料庫或所有資料庫的資訊
sp_renamedb 更改資料庫的名稱
sp_tables 返回當前環境下可查詢物件的列表
sp_columns 返回某個表列的資訊
sp_help 檢視某個表的所有資訊
sp_helpconstraint 檢視某個表的約束
sp_helpindex 檢視某個表的索引
sp_stored_procedures 列出當前環境中的所有儲存過程
sp_password 新增或修改登入賬戶的密碼
sp_helptext 顯示預設值,未加密的儲存過程,使用者定義的儲存過程,觸發器或試圖的實際文字

2.建立儲存過程

CREATE PROCEDURE 儲存過程名

引數1,引數2

AS

SQL語句

3.建立帶輸出引數的儲存過程

定義引數的時候後面加OUTPUT(呼叫的時候也要加OUTPUT)

如:@Sum int OUTPUT

4.刪除儲存過程

DROP PROCEDURE 儲存過程名

5.呼叫儲存過程 EXEC 關鍵字

語法:1) EXEC 儲存過程名

2) EXEC 儲存過程名 引數1,引數2

3) EXEC 儲存過程名 變數名1=引數1,變數名2=引數2

4) EXEC 儲存過程名 變數名1 OUTPUT,變數名2=引數2

6.RETURN 關鍵字

RETURN 關鍵字表明儲存過程結束並能返回整型狀態值給呼叫者

7.自定義錯誤資訊

語法:RAISERROR (‘自定義錯誤提示’,錯誤嚴重性級別,呼叫狀態)

示例:RAISERROR (‘及格線錯誤,請指定0-100之間的分數’,16,1)

(注:錯誤嚴重性級別0-18,呼叫狀態1-127)

相關推薦

T-SQL 程式設計 儲存過程

T-SQL程式設計 1.變數 全域性變數 變 量 含 義 @@ERROR 最後一個T-SQL錯誤的錯誤號 @@IDENTITY 最後一次插入的識別符號 @@LANGUAGE 當前使用的語言名稱 @@MAX_CONNECTIONS 可以建立的同時連線的最大數目 @@ROWCOUNT 受上一個SQL語句影

T-SQL刪除儲存過程

使用T-SQL指令碼刪除儲存過程 語法: --宣告資料庫引用use 資料庫名稱;go --判斷是否存在儲存過程,如果存在則刪除if exists(select * from sys.procedures where name=儲存過程名稱)drop { proc | procedure } [架構名][

Oracle PL/SQL程式設計-儲存過程優缺點及實現過程【1】

如果儲存過程名已經被佔用,兩種方式:1.修改儲存過程名;2新增關鍵字 or replace :表示如果有yao_prol,就替換。eg:SQL> create or replace procedure yao_prol is  2      begin  3      insert into YAO_T

SQL Server Transact-SQL程式設計/儲存過程/觸發器

1.T-sql語言 資料定義語言DDL對錶或檢視的操作 資料操縱語言DML對資料進行操作 資料控制語言 其他常用型別:      事務管理語言     流程控制語言  迴圈  分支  選擇  

oracle中pl/sql程式設計---儲存過程,函式,觸發器,包

1.pl/sql程式設計 pl/sql 指procedure language 過程化/sql. pl/sql 是oracle在標準的sql語句基礎上擴充套件的一種對oracle資料庫進行程式設計的的語言。 可以定義變數和常量,而且可以使用條件語句和迴圈語句。 2.為什麼要有pl/sql程式設計? 平時是通過

SQL server T-SQL存儲過程

lB row 回滾事務 put spa 間接 var uid pan 簡介 存儲過程是由一些SQL語句和控制語句組成的被封裝起來的過程,它駐留在數據庫中,可以被客戶應用程序調用,也可以從另一個過程或觸發器調用。它的參數可以被傳遞和返回。與應用程序中的函數過程類似,存

SQL server 儲存過程的編寫

USE [資料庫名稱] GO /****** Object:  StoredProcedure [dbo].[insertbGait]    Script Date: 2018/7/17 15:51:22 ******/ SET ANSI_NULLS ON GO

SQL SERVER儲存過程加密和安全上下文

對SQL Server 2008的安全入門略作小結,以作備忘。本文涉及兩個應用:儲存過程加密和安全上下文。 <一>儲存過程加密 SQL server,我已經成了儲存過程的忠實擁躉。在直接使用SQL語句還是儲存過程來處理業務邏輯時,我基本會毫不猶豫地選擇後者。 理由如下:

SQL Server資料庫開發(2.T-Sql程式設計

一,批處理(GO)         --可以使不在同一批處理中的sql語句相互之間不受影響          --把相互聯絡的放在同一批次,沒聯絡的放在不同批次

SQL Server 儲存過程返回值的幾種方式

獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC int exec @RC=

Yii2.0呼叫sql server儲存過程並獲取返回值

1、首先展示建立sql server儲存過程的語句,建立一個簡單的儲存過程,測試用。 1 SET ANSI_NULLS ON 2 GO 3 SET QUOTED_IDENTIFIER ON 4 GO 5 6 CREATE PROCEDURE [dbo].[register_info]

資料庫系統概論05-動態SQL&儲存過程&函式

動態SQL 使用SQL語句主變數 EXEC SQL BEGIN DECLARE SECTION; const char *stmt="CREATE TABLE test(a int);"/*SQL語句主變數,內容是建立表的SQL語句*/ EXEC SQL END DECLARE SE

SQL Server儲存過程的使用

   儲存過程概述   簡單來說,儲存過程就是一條或者多條sql語句的集合,可視為批處理檔案,但是其作用不僅限於批處理。  基本概念:   SQL Server中的儲存過程是使用T_SQL編寫的程式碼段。它的目的在於能夠方便的從系統表中查詢資訊,   或者完成與更新資料

第二章 T-SQL程式設計

---批處理  go是批處理的標誌,表示SQL   Server將這些T-sql語句編譯為一個執行單元,提高執行效率 SQL   Server規定:如果是建庫語句、建表語句以及我們後面學習的儲存過程和檢視等,則必須在語句末尾新增go批處理標誌  刪除、重建為一條語句,中

mybaits(查詢與別名、日誌框架顯示sql語句、物件屬性和資料庫表字段不匹配resultMap使用、mysql資料查詢分頁、執行sql儲存過程、動態SQL語句)

主要是各種配置檔案,建議把整個專案搬到自己電腦上慢慢看。 建立maven專案 首先是各種配置檔案: pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://m

SQL儲存過程

前言 儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集 區別 觸發器與儲存過程的唯一區別是觸發器不能執行EXECUTE語句呼叫,而是在使用者執行Transact-SQL語句時自動觸發執行 作用

SQL Server 儲存過程返回值彙總

獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC in

sql語句---儲存過程、函式和觸發器

儲存過程、函式和觸發器的原理: 實際上都是使用Transact-SQL語言編寫的程式。儲存過程和函式需要顯式呼叫才能執行,而觸發器則在滿足指定條件時自動執行。 1、儲存過程 1.1 定義 儲存過程是Transact-SQL語句的預編譯集合,這些語句在一個名稱下儲

Sql Server 儲存過程 - 使用者操作例項

使用者的增刪改查 新增 --新增使用者 create procedure addDeviceUser @name nvarchar(36) , @phone nvarchar(36) , @password nvarchar(255) as begin if exists(

Sql server 儲存過程

-- ======================================= -- Author: <zengyongbin> -- Create date: <2018-11-11> -- Description: <新增> --