.net学习总结(6)之sqlserver 自定义函数与存储过程
来源:互联网 发布:阿里云服务器租用协议 编辑:程序博客网 时间:2024/05/16 02:53
21 一个SQLServer的自定义函数中调用一个自定义的存储过程,执行此函数后发出如下提示:“只有函数和扩展存储过程才能从函数内部执行"。
原因:函数只能使用简单的sql语句,逻辑控制语句,复杂一点的存储过程是不能调用的,在函数里也不能使用execute sp_executesql 或者execute 。解决方法把函数改为存储过程,然后在另一个存储过程中象调用函数一样使用此存储过程就可以了。
下面是一个存储过程调用另一个存储过程的实例,有参数传递的。
--存储过程sp_B
create proc sp_B
@A int ,
@B int ,
@C int output
AS
set @C = @A + @B
go
--存储过程p_A
create proc sp_A
@A int ,
@B int
as
declare @C int
exec sp_B @A , @B , @C output
print @C
go
--测试
exec sp_A 3 , 5
22. 怎样执行带参数的SQL语句,比如说字段是一个参数,如何写存储过程?实例如下:
Create proc [dbo].[jsxs]
(
@zb varchar(5),
@nr varchar(4),
@ID int,
@shu int output
)
AS
BEGIN
declare @sqls nvarchar(1000)--注意此类型
if @nr='A'
set @zb=@zb+'1'
if @nr='B'
set @zb=@zb+'2'
if @nr='C'
set @zb=@zb+'3'
if @nr='D'
set @zb=@zb+'4'
if @nr='E'
set @zb=@zb+'5'
----------------------------------主题部分------------------------------------
set @sqls='select @a=' +@zb + ' from shumu where peID=' +cast(@ID as char)
exec sp_executesql
@sqls,
N'@a int output',@shu output
END
原因:函数只能使用简单的sql语句,逻辑控制语句,复杂一点的存储过程是不能调用的,在函数里也不能使用execute sp_executesql 或者execute 。解决方法把函数改为存储过程,然后在另一个存储过程中象调用函数一样使用此存储过程就可以了。
下面是一个存储过程调用另一个存储过程的实例,有参数传递的。
--存储过程sp_B
create proc sp_B
@A int ,
@B int ,
@C int output
AS
set @C = @A + @B
go
--存储过程p_A
create proc sp_A
@A int ,
@B int
as
declare @C int
exec sp_B @A , @B , @C output
print @C
go
--测试
exec sp_A 3 , 5
22. 怎样执行带参数的SQL语句,比如说字段是一个参数,如何写存储过程?实例如下:
Create proc [dbo].[jsxs]
(
@zb varchar(5),
@nr varchar(4),
@ID int,
@shu int output
)
AS
BEGIN
declare @sqls nvarchar(1000)--注意此类型
if @nr='A'
set @zb=@zb+'1'
if @nr='B'
set @zb=@zb+'2'
if @nr='C'
set @zb=@zb+'3'
if @nr='D'
set @zb=@zb+'4'
if @nr='E'
set @zb=@zb+'5'
----------------------------------主题部分------------------------------------
set @sqls='select @a=' +@zb + ' from shumu where peID=' +cast(@ID as char)
exec sp_executesql
@sqls,
N'@a int output',@shu output
END
- .net学习总结(6)之sqlserver 自定义函数与存储过程
- Sqlserver中存储过程,触发器,自定义函数(二)
- Sqlserver中存储过程,触发器,自定义函数(三)
- Sqlserver中存储过程,触发器,自定义函数:(二)
- Sqlserver中存储过程,触发器,自定义函数(三)
- .net学习总结(2)之存储过程,触发器
- SqlServer存储过程、函数、游标例子之存储过程(二)
- sqlserver 存储过程总结
- 数据库之事务、存储过程与自定义函数
- oracle学习笔记之存储过程与存储函数
- SQLServer存储过程学习
- sqlserver存储过程学习
- SqlServer存储过程学习
- SqlServer Dev(1) - 存储过程和自定义函数的区别
- Sqlserver中存储过程,触发器,自定义函数(一)
- Sqlserver中存储过程,触发器,自定义函数(一)
- sqlserver 自定义、删除、执行 函数和存储过程
- SQLServer之存储过程
- Linux下的汇编
- 公务员某考试开会听会能力 某研究生公务员听写如下
- 使用Win32 Internet API的下载文件
- 多对多关联关系处理(王添乐)
- 博客同步
- .net学习总结(6)之sqlserver 自定义函数与存储过程
- Web 设计:实现干净代码的12条定律
- [英语阅读]文化部出新规 假唱将受罚
- Eclipse环境下数据库应用(Sql server + HSqlDb)
- brief writing of javascript
- 可拖拽DIV
- T-SQL(3)-批处理
- 获取文件夹路径
- Thinking in java 从标准输出读取字符串