怎么把存储过程改回SQL句子

lcy5415 2003-12-07 08:38:46
基于Access数据库,实现购物功能的程序.微软IBuySpy(购物程序示例)中的一个存储过程和我要的功能可接近,怎么仿之写出SQL句子.

Orders是订单表,OrdersDetail是明细表,
ShoppingCart 是购物车,Products 是商品表



CREATE Procedure OrdersAdd
(
@CustomerID int,
@CartID nvarchar(50),
@OrderDate datetime,
@ShipDate datetime,
@OrderID int OUTPUT
)
AS

BEGIN TRAN AddOrder

/* Create the Order header */
INSERT INTO Orders
(
CustomerID,
OrderDate,
ShipDate
)
VALUES
(
@CustomerID,
@OrderDate,
@ShipDate
)

SELECT
@OrderID = @@Identity

/* Copy items from given shopping cart to OrdersDetail table for given OrderID*/
INSERT INTO OrderDetails
(
OrderID,
ProductID,
Quantity,
UnitCost
)

SELECT
@OrderID,
ShoppingCart.ProductID,
Quantity,
Products.UnitCost

FROM
ShoppingCart
INNER JOIN Products ON ShoppingCart.ProductID = Products.ProductID

WHERE
CartID = @CartID

/* Removal of items from user's shopping cart will happen on the business layer*/
EXEC ShoppingCartEmpty @CartId

COMMIT TRAN AddOrder


GO
...全文
43 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-12-08
  • 打赏
  • 举报
回复
'当然,是不可能完全实现.

'下面是一个ACCESS查询,利用VBA函数的例子:

'假设有表:合并字符串
id 货品编号 货品名称 季节 尺寸 颜色

'新建一个模块,写上下面的VBA函数
Public Function f_getstr(bh$, fd$) As String 'bh为货品编号,fd为要组合的字段名
Dim iRe As String, Re As DAO.Recordset

Set Re = CurrentDb.OpenRecordset("select " & fd & " from 合并字符串 where 货品编号='" + bh + "'")
While Re.EOF = False
iRe = iRe & "," & Re(0)
Re.MoveNext
Wend
Re.Close

f_getstr = Mid(iRe, 2)
End Function

'则新建这样的查询是可以的.
SELECT 货品编号, 货品名称, 季节, f_getstr(货品编号,"尺寸") AS 尺寸, f_getstr(货品编号,"颜色") AS 颜色
FROM 合并字符串
GROUP BY 货品编号, 货品名称, 季节;
zjcxc 元老 2003-12-08
  • 打赏
  • 举报
回复
ACCESS不支持存储过程,但支持VBA代码.楼主的要求是有可能用VBA代码来实现的.

lcy5415 2003-12-08
  • 打赏
  • 举报
回复
大家说得都对,就是怎么实现这部分功能,因为ACCESS没有存储过程,我必须得用多条语句了,
victorycyz给了很有价值的建议,可惜我不会
victorycyz 2003-12-08
  • 打赏
  • 举报
回复
access数据库不能写存储过程,你可以把这部分功能做成带参数的多个视图,或者做成前台的一个子函数。
CrazyFor 2003-12-07
  • 打赏
  • 举报
回复
一个存储过程有这么多语句,而且不光是一个语句,怎么可能写成一句呢!`
`
qinqindodo 2003-12-07
  • 打赏
  • 举报
回复
没看见inserted 和deleted 阿,只是个存储过程吧,你是要用一个sql查询得到集果集?
lcy5415 2003-12-07
  • 打赏
  • 举报
回复
它是个触发器吧,怎么能改成最优的SQL语句
DigJim 2003-12-07
  • 打赏
  • 举报
回复

不太理解“写出SQL句子”的意思.

AS后面不就是你要的SQL句子吗?

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧