開心生活站

位置:首頁 > 綜合知識 > 

sql存儲過程怎麼寫

1. 數據庫存儲過程怎麼編寫

第一步:點擊數據庫下的“可編程性”,選擇“存儲過程”,點擊鼠標右鍵,選擇“新建存儲過程”

sql存儲過程怎麼寫

第二步:在create PROCEDURE 後 輸入存儲過程的名字,緊跟着的就是定義存儲過程的參數,接下來就可以去編寫自己所需要組裝的存儲過程語句了

第三步: 編譯存儲過程,在工具欄上按下執行按鈕,如果沒有錯誤,就編寫成功了。

第四步:調用:在sqlserver的語句查詢框中,輸入exec 存儲過程名 參數,執行就可以了。

基本語法格式如下:中括號帶的是可選項

create proc | procedure pro_name

[{@參數數據類型} [=默認值] [output],

{@參數數據類型} [=默認值] [output],

.

]

as

begin

SQL_statements

--業務處理

end

2. SQL Server的存儲過程怎麼寫

SQL server中如何存儲:首先準備數據,測試存儲過程 use ssqadm; 創建測試books表 create table books_test ( book_id int identity(1,1) primary key, book_name varchar(20),book_price float,book_auth varchar(10)); 插入測試數據 insert into books_test (book_name,book_price,book_auth)values ('論語',25.6,'孔子'),('天龍八部',25.6,'金庸'),('雪山飛狐',32.7,'金庸'),('平凡的世界',35.8,'路遙'),('史記',54.8,'司馬遷'); select * from books_test;*/ 創建無參存儲過程 if (exists (select * from sys.objects where name = 'getAllBooks')) drop proc getAllBooks go create procedure getAllBooks as begin select * from books_test; 調用,執行存儲過程 exec getAllBooks; end go 修改存儲過程 alter procedure getallbooks as select book_name from books_test; 修改存儲過程的名稱 sp_rename getallbooks,proc_get_allbooks; go exec proc_get_allbooks; go 創建帶參數的存儲過程 use ssqadm go if (exists (select * from sys.objects where name = 'searchbooks')) drop proc searchbooks exec searchbooks 執行存儲searchbooks得到如下結果:go create procedure searchbooks (@bookid int)--括號裏面是 as begin declare @book_id int;定義一個標量變量,只是保證存儲過程的完整性,在本存儲是多此一舉的。

set @book_id = @bookid; select* from books_test where book_id = @book_id; end; go-- exec searchbooks 執行存儲searchbooks得到如下結果:創建帶兩個參數的存儲過程 use ssqadm go if (exists (select * from sys.objects where name = 'book_test2')) drop proc book_test2 exec book_test2 執行存儲book_test2得到如下結果:go create procedure book_test2 (@bookid int,@bookname varchar(20))括號裏面是 as begin declare @book_id int; 定義一個標量變量,只是保證存儲過程的完整性,在本存儲是多此一舉的。declare @book_name varchar(20); set @book_id = @bookid; set @book_name = @bookname; select* from books_test where book_id = @book_id and book_name = @book_name; end; go exec book_test2 擴展資料:SQL Server中查詢存儲命令子句:USE [SSQADM] Use 是跳轉到哪個數據庫,對這個數據庫進行操作。

GO GO向 SQL Server 實用工具發出一批 Transact-SQL 語句結束的信號,相當於提交上面的SQL語句。GO是把t-sql語句分批次執行 (一步成功了纔會執行下一步,即一步一個GO)/****** Object: StoredProcedure [dbo].[PROC_four_five_hr] Script Date: 07/30/2018 13:44:55 ******/ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON。

3. SQL存儲過程怎麼寫這樣套複雜的寫法.

create proc proc1

@B1 int,@B2 int,@ID int output

as

declare @K1 int,@K2 int,@K3 varchar(20)

begin

exec proc2 @K1,@K2,@K3 output --@K3輸出參數 就是你的tablename

select @ID=ID from @K3 where B1=@B1 and B2=@B2

end

你提供的不詳細 我只能寫個思路給你。。 調用proc1存儲過程先調用proc2傳出一個表名 然後根據傳入的參數輸出這個表名的ID字段。

4. SQL Server的存儲過程怎麼寫

SQL server中如何存儲: 首先準備數據,測試存儲過程 use ssqadm; 創建測試books表 create table books_test ( book_id int identity(1,1) primary key, book_name varchar(20),book_price float,book_auth varchar(10)); 插入測試數據 insert into books_test (book_name,book_price,book_auth)values ('論語',25.6,'孔子'), ('天龍八部',25.6,'金庸'), ('雪山飛狐',32.7,'金庸'), ('平凡的世界',35.8,'路遙'), ('史記',54.8,'司馬遷'); select * from books_test;*/ 創建無參存儲過程 if (exists (select * from sys.objects where name = 'getAllBooks')) drop proc getAllBooks go create procedure getAllBooks as begin select * from books_test; 調用,執行存儲過程 exec getAllBooks; end go 修改存儲過程 alter procedure getallbooks as select book_name from books_test; 修改存儲過程的名稱 sp_rename getallbooks,proc_get_allbooks; go exec proc_get_allbooks; go 創建帶參數的存儲過程 use ssqadm go if (exists (select * from sys.objects where name = 'searchbooks')) drop proc searchbooks exec searchbooks 執行存儲searchbooks得到如下結果: go create procedure searchbooks (@bookid int)--括號裏面是 as begin declare @book_id int;定義一個標量變量,只是保證存儲過程的完整性,在本存儲是多此一舉的。

set @book_id = @bookid; select* from books_test where book_id = @book_id; end; go -- exec searchbooks 執行存儲searchbooks得到如下結果: 創建帶兩個參數的存儲過程 use ssqadm go if (exists (select * from sys.objects where name = 'book_test2')) drop proc book_test2 exec book_test2 執行存儲book_test2得到如下結果: go create procedure book_test2 (@bookid int,@bookname varchar(20))括號裏面是 as begin declare @book_id int; 定義一個標量變量,只是保證存儲過程的完整性,在本存儲是多此一舉的。 declare @book_name varchar(20); set @book_id = @bookid; set @book_name = @bookname; select* from books_test where book_id = @book_id and book_name = @book_name; end; go exec book_test2 擴展資料: SQL Server中查詢存儲命令子句: USE [SSQADM] Use 是跳轉到哪個數據庫,對這個數據庫進行操作。

GO GO向 SQL Server 實用工具發出一批 Transact-SQL 語句結束的信號,相當於提交上面的SQL語句。 GO是把t-sql語句分批次執行 (一步成功了纔會執行下一步,即一步一個GO) /****** Object: StoredProcedure [dbo].[PROC_four_five_hr] Script Date: 07/30/2018 13:44:55 ******/ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON。

5. SQL語句一般存儲過程怎麼寫

create proc 存儲過程名

[可選參數列表(格式:@參數名 參數類型 [ = 可選默認值],)]:參數間用逗號分隔

as

T-SQL語句

go

---------------調用---------------

exec 存儲過程名

例如:

create proc selectStudent

@stuClassId int,

@stuName nvarchar(20)

as

SELECT * FROM student WHERE stuClassId = @stuClassId and stuName=@stuName

go

6. sql存儲過程語句怎麼寫

CREATE procedure test

@ban varchar(20),

@begintime varchar(20),

@endtime varchar(20)

as

select * from table

where 班次 like @ban

and 時間 between @begintime and @endtime

傳入班次前最好先判斷參數的值是否爲空,是的話給它賦值爲%

7. SQL數據庫這個存儲過程應該如何寫

兩個方案:

1、使用觸發器,在A庫的a表中建立 Insert,Update 觸發器,使在數據寫入或更新時,將變更實時寫入B庫b表;

好處:簡單、實時;缺點:遠程實時訪問以及觸發器的方式,風險大,當B不能訪問或反應緩慢時,A庫的a表就無法更新;

2、使用計劃任務:好處:可避免上述的所有缺點;不足:實現稍複雜些,且不是實時同步;步驟:

1)爲A庫a表建立日誌表a_log,用於詳細記錄對a表的插入、刪除、和Update操作,並有時間記錄;

2)爲A庫a表建立Insert,Update,Delete 觸發器,將對a表的這些操作過程記錄在a_log表中(即:對哪個ID做了什麼操作);

3)在B庫中建立存儲過程,用於讀取A庫a_log表的信息,並據此用a表數據更新b表數據。可採用增量方式,也就是每次操作時都取上次成功的時間點之後的數據;

4)在B庫建立計劃任務,定時調用上述的存儲過程。按需要,可以幾分鐘一次,也可以幾天一次。

標籤:SQL 存儲