SQL Server 数据库实现增删改查
1.什么是存储过程?
存储过程是SQL语句和控制语句的预编译集合,保存在数据库里,可由应用程序调用执行,而且容许用户声明变量,逻辑控制语句及其他强大的编程功能。
存储过程可包含逻辑控制语句和数据操作语句,它可以接收参数,输出参数,返回单个或多个结果集及返回值。
2.存储过程的优点?
模块化程序设计 执行速度快 减少网络流量 具有良好的安全性
创建存储过程的语法:
CREATE PROC [EDURE] 存储过程名
[ {@参数1 数据类型 } [=默认值] [OUTPUT]
............
{@参数n 数据类型 } [=默认值] [OUTPUT]
]
AS
SQL语句
删除存储过程语法:
DROP PROC [EDURE] 存储过程名
存储过程及增删改查示例代码:
--添加
create procedure usp_add
(
@table nvarchar(255),
@values nvarchar(max)=null
)
as
declare @sql nvarchar(max)
set @sql='insert into '+@table
if @values is not null
set @sql='insert into '+@table+' values('+@values+')'
exec sp_executesql @sql
select @@IDENTITY
go
exec usp_Add '数码' ,'''哦'',50,200'
go
--删除
create procedure usp_delete --创建存储过程
(
@table nvarchar(255),
@where nvarchar(max)=null
)
as
declare @sql nvarchar(max)
set @sql='delete '+@table
if @where is not null
set @sql+=' where '+@where
exec sp_executesql @sql
go
exec usp_delete '数码','id=1'
go
--修改
create procedure usp_update
(
@table nvarchar(255),
@set nvarchar(max),
@where nvarchar(max)=null
)
as
declare @sql nvarchar(max)
set @sql='update '+@table+' set '+@set
if @where is not null
set @sql+=' where '+@where
exec sp_executesql @sql
go
exec usp_update '数码','StockName=''手机''','id=2'
go
--查找
create procedure usp_select
(
@table nvarchar(255),
@where nvarchar(max)=null
)
as
declare @sql nvarchar(max)
set @sql='select * from '+@table
if @where is not null
set @sql=@sql+' where '+@where
exec sp_executesql @sql
go
exec usp_select 'Stock'
go
exec usp_select 'Stock','id=2'
go