我正在学习sql和asp.net并试图建立一个简单的网上商店,我有一个很好的工作程序,但我正在尝试编辑它,对tblProducts应用'select'来过滤产品类型:
SELECT * FROM tblProducts where PCategoryID=1
但我无法理解如何更改我的程序,我的所有尝试都会导致语法错误
CREATE PROCEDURE [dbo].[ProcBindAllProducts]
AS
SELECT A.*, B.*,C.Name, A.PPrice-A.PSellPrice as DiskAmount, B.Name as ImageName,C.Name as BrandName
from tblProducts A
inner join tblBrands C on C.BrandID=A.PBrandID
cross apply(
SELECT TOP 1 * from tblProductImages B where B.PID=A.PID order by B.PID desc
) B
RETURN 0
只有一种方式可以在没有sintax错误的情况下执行此操作,但此过程的结果是2个表,一个按类型过滤,另一个带内连接
CREATE PROCEDURE [dbo].[ProcBindFilteredProducts]
AS
SELECT * from tblProducts where tblProducts.PCategoryID=1
SELECT A.*,B.*,C.Name, A.PPrice-A.PSellPrice as DiskAmount, B.Name as ImageName,C.Name as BrandName
from tblProducts A
inner join tblBrands C on C.BrandID=A.PBrandID
cross apply(
SELECT TOP 1 * from tblProductImages B where B.PID=A.PID order by B.PID desc
) B
RETURN 0
答案 0 :(得分:0)
如果您可以提供有关您遇到的语法错误的更多信息,这可能会很有用。
如果您已经创建了[dbo]。[ProcBindFilteredProducts]程序,那么您需要:
通常它更容易改变。
答案 1 :(得分:-1)
如果您正在编辑现有程序,则必须使用ALTER PROCEDURE
语句。如果您正在使用SSMS,则可以右键单击您的程序,然后单击Modify
为您生成可以编辑的脚本。
ALTER PROCEDURE [dbo].[ProcBindAllProducts]
AS
-- Code for procedure
GO
您收到的错误是什么?