为指定的多个参数执行相同的SQL select

时间:2017-02-20 15:40:45

标签: sql-server sql-server-2008 stored-procedures

哦,伟大的SQL专家,我有以下场景。我必须多次执行相同的选择,每次只更改一个参数(S),例如:

DECLARE @company1 varchar(25)
set @company1 = AA

然后执行以下操作:

Select * from sales where Company_Name = @company1

宣布一个新的参数

 set @company1 = BB

并循环返回以运行查询。

这适用于少数公司,每次运行可能有一些参数。 所以我想做的就是指定一次查询,只需在顶部添加@companyX声明。

由于

1 个答案:

答案 0 :(得分:0)

关于如何将数据提供给参数或查询的上下文中的信息很少,因此这里有一些选项。

创建一个存储过程,并多次调用它:

binary

创建用户定义的表值函数。如果需要,可以从存储过程调用它:

JsonStream := TStringStream.Create('{"name": "ФЫВАПР.txt", "parent": {"id": "0"}}', TEncoding.UTF8);
try
  MD.AddFormField('metadata', 'application/json', 'utf-8', JsonStream);
  // send the post...
finally
  JsonStream.Free;
end;

或者你是一个“IN”语句,可以为多个过滤器值(在本例中为公司名称)调用一次查询。

-- Stored procedure
create procedure dbo.GetSalesByCompany
@companyName varchar(25)

AS

SET NOCOUNT ON;
Select * from sales where Company_Name = @company1;

--Usage
exec dbo.GetSalesByCompany 'AA';
exec dbo.GetSalesByCompany 'BB';

-- Usage with params
DECLARE @company1 varchar(25)
set @company1 = 'AA';
exec dbo.GetSalesByCompany @company1;
set @company1 = 'BB';
exec dbo.GetSalesByCompany @company1;