存储过程的三种返回值与其获得方法

简介:

 

 
  1. CREATE TABLE [dbo].[Order](  
  2. [o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,  
  3. [o_buyerid] [intNOT NULL 
  4. )  
  5. 1.OUPUT参数返回值  
  6.  
  7. 例: 向Order表插入一条记录,返回其标识  
  8. CREATE PROCEDURE [dbo].[nb_order_insert](  
  9. @o_buyerid int ,  
  10. @o_id bigint OUTPUT 
  11. )  
  12. AS 
  13. BEGIN 
  14. SET NOCOUNT ON;  
  15. BEGIN 
  16. INSERT INTO [Order](o_buyerid )  
  17. VALUES (@o_buyerid )  
  18. SET @o_id = @@IDENTITY  
  19. END 
  20. END 
  21. 存储过程中获得方法:  
  22. DECLARE @o_buyerid int 
  23. DECLARE @o_id bigint 
  24. EXEC [nb_order_insert] @o_buyerid ,o_id bigint 
  25.  
  26. RETURN过程返回值  
  27. CREATE PROCEDURE [dbo].[nb_order_insert](  
  28. @o_buyerid int ,  
  29. @o_id bigint OUTPUT 
  30. )  
  31. AS 
  32. BEGIN 
  33. SET NOCOUNT ON;  
  34. IF(EXISTS(SELECT * FROM [Shop] WHERE [s_id] = @o_shopid))  
  35. BEGIN 
  36. INSERT INTO [Order](o_buyerid )  
  37. VALUES (@o_buyerid )  
  38. SET @o_id = @@IDENTITY  
  39. RETURN 1 — 插入成功返回1  
  40. END 
  41. ELSE 
  42. RETURN 0 — 插入失败返回0  
  43. END 
  44. 存储过程中的获取方法  
  45. DECLARE @o_buyerid int 
  46. DECLARE @o_id bigint 
  47. DECLARE @result bit 
  48. EXEC @result = [nb_order_insert] @o_buyerid ,o_id bigint 
  49.  
  50. 3.SELECT 数据集返回值  
  51. CREATE PROCEDURE [dbo].[nb_order_select](  
  52. @o_id int 
  53. )  
  54. AS 
  55. BEGIN 
  56. SET NOCOUNT ON;  
  57. SELECT o_id,o_buyerid FROM [Order]  
  58. WHERE o_id = @o_id  
  59. GO  
  60.  
  61. 存储过程中的获取方法:  
  62. 3.1使用临时表  
  63. CREATE TABLE [dbo].[Temp](  
  64. [o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,  
  65. [o_buyerid] [intNOT NULL 
  66. )  
  67. INSERT [TempEXEC [nb_order_select] @o_id  
  68. – 这时 Temp 就是EXEC执行SELECT 后的结果集  
  69. SELECT * FROM [Temp]  
  70. DROP [Temp] — 删除临时表  
  71. 3.2使用openrowset(不过就是速度不怎么样)  
  72. SELECT * from openrowset(’provider_name','Trusted_Connection=yes’,'exec nb_order_select’)  

 


本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/380219,如需转载请自行联系原作者

相关文章
|
11月前
|
存储 Oracle 关系型数据库
mysql存储过程调试方法
mysql存储过程调试方法
726 0
|
存储 Oracle Java
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
|
存储 SQL Oracle
Oracle 存储过程和方法全攻略:实战详解调用技巧与注意事项
Oracle 存储过程和方法全攻略:实战详解调用技巧与注意事项
878 0
|
存储 SQL
vc++中,用ado执行sql server存储过程,并且取得返回值的例子
vc++中,用ado执行sql server存储过程,并且取得返回值的例子
|
SQL 存储 缓存
mssql sqlserver 批量删除所有存储过程的方法分享
原文:mssql sqlserver 批量删除所有存储过程的方法分享 转自:http://www.maomao365.com/?p=6864 摘要: 下文讲述采用sql脚本批量删除所有存储过程的方法,如下所示: 实验环境:sqlserver 2008 R2 平常使用sql脚本,删除...
1060 0