sql編寫存儲過程
1、首先需要打開SQL Server Managment管理工具,新建一個表。
㈡ 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 procere getAllBooks
as
begin
select * from books_test;
調用,執行存儲過程
exec getAllBooks;
end
go
修改存儲過程
alter procere 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 procere 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 procere 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
(2)sql編寫存儲過程擴展閱讀:
SQL Server中查詢存儲命令子句:
USE [SSQADM]
Use 是跳轉到哪個資料庫,對這個資料庫進行操作。
GO
GO向 SQL Server 實用工具發出一批 Transact-SQL 語句結束的信號,相當於提交上面的SQL語句。
GO是把t-sql語句分批次執行
(一步成功了才會執行下一步,即一步一個GO)
/****** Object: StoredProcere [dbo].[PROC_four_five_hr]
Script Date: 07/30/2018 13:44:55 ******/
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON
㈢ 如何編寫存儲過程
//創建存儲過程
CREATE PROCEDURE userData(
IN id INT
)
BEGIN
SELECT * from userdata WHERE userflag = id;
END;
其中IN是傳進去的變數;
drop procere userData;//銷毀這個存儲過程。
call userData(2) //調用存儲過程。
(3)sql編寫存儲過程擴展閱讀:
sql中的存儲過程及相關介紹:
CREATE PROCEDURE [擁有者.]存儲過程名[;程序編號]
[(參數#1,…參數#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行
其中存儲過程名不能超過128個字。每個存儲過程中最多設定1024個參數
(SQL Server 7.0以上版本),參數的使用方法如下:
@參數名數據類型[VARYING] [=內定值] [OUTPUT]。
每個參數名前要有一個「@」符號,每一個存儲過程的參數僅為該程序內部使用,參數的類型除了IMAGE外,其他SQL Server所支持的數據類型都可使用。
[內定值]相當於我們在建立資料庫時設定一個欄位的默認值,這里是為這個參數設定默認值。[OUTPUT]是用來指定該參數是既有輸入又有輸出值的,也就是在調用了這個存儲過程時,如果所指定的參數值是我們需要輸入的參數。
同時也需要在結果中輸出的,則該項必須為OUTPUT,而如果只是做輸出參數用,可以用CURSOR,同時在使用該參數時,必須指定VARYING和OUTPUT這兩個語句。
參考資料來源:網路-儲存過程
㈣ sql資料庫 編寫存儲過程
----創建存儲過程GetCurrentDate
create proc GetCurrentDate
as
DECLARE @Date VARCHAR(20)
SET @Date=''
SELECT @Date=CONVERT(VARCHAR(4),DATEPART(YEAR,GETDATE()))
+'年'+CONVERT(VARCHAR(2),DATEPART(MONTH,GETDATE()))
+'月'+CONVERT(VARCHAR(2),DATEPART(DAY,GETDATE()))
+'日'
SELECT @Date AS '當前日期'
----執行存儲過程:
exec GetCurrentDate
運行顯示:
2011年12月7日
㈤ 用SQL語句創建存儲過程
--1、創建存儲過程--
if
exists
(select
*
from
sysobjects
where
name='info1')
drop
procere
info1
go
create
procere
info1
@sname
varcher(20),
as
begin
declear
@xinxi
varcher(20)
set
@xinxi='select
學號,姓名,出身日期,系別(注,列名自己設置)
from
student
where
姓名=@sname'
print'@xinxi';
end
--調用存儲過程1--
exec
info1
@sname=姓名
後面的自己參考,可以寫出來
㈥ SQL存儲過程怎麼寫
--表a和表b兩個表之間要存在一種聯系(比如你的會員ID,在這兩個表裡都有吧?)
--所以你可以這樣寫
--select case a.STS when Y then b.臨時地址 else a.聯系地址 end as Address
--from a join b on a.會員ID=b.會員ID
--這樣就可以得到相應的地址了
㈦ 用SQL怎樣編寫一個存儲過程
CREATE
PROCEDURE
[dbo].[usp_InsertTool]
@T_Name
nvarchar(50),
@T_OldPrice
money,
@T_TypeID
smallint,
@T_CreateTime
smalldatetime,
@T_IsValid
bit,
@T_
Description
nvarchar(500),
@T_SoldCount
bigint,
@T_ID
int
OUTPUT
AS
--SET
NOCOUNT
ON
INSERT
INTO
[dbo].[NA.Tool]
(
[T_Name],
[T_OldPrice],
[T_TypeID],
[T_CreateTime],
[T_IsValid],
[T_Description],
[T_SoldCount]
)
VALUES
(
@T_Name,
@T_OldPrice,
@T_TypeID,
@T_CreateTime,
@T_IsValid,
@T_Description,
@T_SoldCount
)
--SET
@T_ID
=
SCOPE_IDENTITY()
SELECT
SCOPE_IDENTITY()
這就是一個插入數據並返回記錄ID的
存儲過程
,各種類型的參數都給你用到了
㈧ sql 存儲過程語句編寫
要到達你的要求,在存儲過程中必須使用動態SQL語句。
一個簡化的例子:
createprocereMyDynamicSQL
@tblwherenvarchar(200)--a==aora==xxx
as
begin
declare@sqlnvarchar(max)
--動態拼接sql語句
set@sql=N'select*from[表一]where'+@tblwhere
--執行
executesp_executesql@sql
end
㈨ SQL實現存儲過程
提供4中方案:
1、可以用sql作業的方式來定時執行。
2、編寫服務,定時執行存儲過程。
3、利用ado.net的方式,timmer定時執行來實現。
4、如果是每天的某個時間段來執行的話,可以配置windows計劃任務來執行程序。程序中執行你的存儲過程。
㈩ 使用SQL語句創建存儲過程
使用SQL語句創建存儲的具體過程如下:
1、首先,打開企業管理器,選擇【工具】-【查詢分析器】: