SQL Server:存储过程相关

Posted

技术标签:

【中文标题】SQL Server:存储过程相关【英文标题】:SQL Server: stored procedure related 【发布时间】:2011-03-23 17:04:38 【问题描述】:

我有两个输入参数shopidcategoryid

我想为categoryproductlist 创建一个存储过程,用于显示与categoryid 相关的产品。我有一个表 product 与列 productid , shopid , title 我有一个表 category 与列 shopid,title,logical code, categoryid

谁能告诉我如何使用这些输入参数为categoryproductlist 编写存储过程?

【问题讨论】:

我是存储过程的新手 您使用的是哪个数据库 - 标题中的 SQL 服务器?如果您可以编写 select 语句,那么您可以轻松地将其转换为存储过程或函数 - 您可以为此编写 select 吗? 您需要将 CategoryID 列添加到 Products 表中,除非您通过 ShopID 关联它们。否则,将假定所有产品都属于所有类别。 我有另一个名为 tblcategoryproduct 的表,其中包含 categoryproductid 、 categoryid 、 productid 列 请帮助我写这个存储过程我真的很困惑 【参考方案1】:

试一试:

CREATE PROCEDURE p_CategoryProductList
    @CategoryID INT
    @ShopID     INT

AS

SELECT
    c.itle as CategoryTitle,
    c.[logical code],
    p.title as ProductTitle
FROM Product p
INNER JOIN tblcategoryproduct cp on p.ProductID=cp.ProductID
INNER JOIN Category c on c.CategoryID=cp.CategoryID
WHERE c.ShopID=@ShopID
AND   c.CategoryID=@CategoryID 

【讨论】:

我永远不会在存储过程中使用SELECT * - 拼出你要返回的列 - 这样就减少了令人讨厌的惊喜! @marc_s 好的,谢谢。我只是把它扔在那里,忘了更新。我会解决的。

以上是关于SQL Server:存储过程相关的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server通过条件搜索获取相关的存储过程等对象

SQL server存储过程,触发器,游标相关实例

SQL Server 存储过程详解

SQL Server 存储过程和触发器

SQL Server存储过程的使用

sql server 删除表及表的相关视图存储过程方法