то, что я ищу в том, что если я решу прекратить, priceunit и т.д., это показывает мне, что часть запроса в ИНЕКЕ ..как послать правильные параметры хранимой процедуры
существует другой путь к этому?
USE [Northwind]
GO
ALTER PROCEDURE [dbo].[ProductosDiscontinuos]
-- Add the parameters for the stored procedure here
@discont bit,
@Unit INT,
@priceUnit INT,
@cName VARCHAR(30),
@CONSULTA nvarchar(MAX),
@tipoConsulta nvarchar(MAX)
AS
BEGIN
SET NOCOUNT ON;
SELECT
p.ProductName,
s.CompanyName,
p.QuantityPerUnit,
p.UnitPrice,
p.UnitsInStock,
p.UnitsOnOrder,
p.ReorderLevel,
p.Discontinued,
c.CategoryName,
c.Description
FROM
dbo.Categories c
INNER JOIN
dbo.Products p ON
c.CategoryID=p.CategoryID
INNER JOIN
Suppliers s ON
p.SupplierID=s.SupplierID
WHERE
@tipoConsulta =
(CASE
WHEN @CONSULTA='discontinued' THEN '[email protected]'
WHEN @CONSULTA='UnitsOnOrder' THEN 'p.UnitsOnOrder > @Unit'
WHEN @CONSULTA='UnitPrice' THEN 'p.UnitPrice > @priceUnit'
WHEN @CONSULTA ='CompanyNAme' THEN 's.CompanyNAme Like %@cName%'
END)
END
Выполнить Скрипт ...
USE [Northwind]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[ProductosDiscontinuos]
@discont = 1,
@Unit = NULL,
@priceUnit = NULL,
@cName = NULL,
@CONSULTA = N'discontinued',
@tipoConsulta = N'discontinued'
SELECT 'Return Value' = @return_value
, но он не показывает мне что-нибудь !!
Возможно, вам нужно использовать Dynamic-SQL – lad2025
Предложение WHERE всегда будет ложным, 'WHERE 'прекращено' = 'p.Discontinued = @ discont'' – lad2025