Stored procedures 为存储过程编写脚本的请求在进程查询中返回值
编写计分过程脚本的请求,返回以下内容: 请求Stored procedures 为存储过程编写脚本的请求在进程查询中返回值,stored-procedures,Stored Procedures,编写计分过程脚本的请求,返回以下内容: 请求 当传递null时,返回所有 和字段可以搜索 组合可以搜索 代码: @AccountNo varchar(30) = null, @DateLogged datetime = null, @ReferenceNo varchar (50) = null, @ErfNo varchar (45) = null, @Surname varchar (255) = null, @Name varchar (255) = null, @IdentityNo v
@AccountNo varchar(30) = null,
@DateLogged datetime = null,
@ReferenceNo varchar (50) = null,
@ErfNo varchar (45) = null,
@Surname varchar (255) = null,
@Name varchar (255) = null,
@IdentityNo varchar (13) = null,
ALTER PROCEDURE [dbo].[Search_case]
(
@AccountNo varchar(30) = null,
@DateLogged datetime = null,
@ReferenceNo varchar (50) = null,
@ErfNo varchar (45) = null,
@Surname varchar (255) = null,
@Name varchar (255) = null,
@ProcessInstanceId varchar (50) = null,
@IdentityNo varchar (13) = null,
@Summary varchar (max) = null,
@Suspend varchar (10) = null,
@Notes varchar (max) = null,
@RatesNo varchar (30) = null,
@Status varchar (50) = null
)
WITH EXECUTE AS OWNER, RECOMPILE
AS
SET NOCOUNT ON;
SELECT
dbo.Cases.DateLogged,
dbo.Cases.ReferenceNo,
dbo.Account.AccountNo,
dbo.Customer.RatesNo,
dbo.Customer.IdentityNo,
dbo.Account.ErfNo,
dbo.Customer.Surname,
dbo.Customer.Name,
dbo.Cases.ProcessInstanceId,
dbo.Cases.Status,
dbo.Cases.Summary,
dbo.Cases.Suspend,
dbo.Cases.Notes
FROM
[ICSM_CORRES].[dbo].[Cases]
INNER JOIN
[dbo].Customer ON dbo.Cases.CustomerId = dbo.Cases.CustomerId
INNER JOIN
dbo.Account ON dbo.Customer.AccountNoId = dbo.Account.AccountNoId
WHERE
dbo.Account.AccountNo = @AccountNo
OR dbo.Customer.RatesNo = @RatesNo
OR dbo.Cases.DateLogged = @DateLogged
OR dbo.Cases.ReferenceNo = @ReferenceNo
OR dbo.Customer.IdentityNo = @IdentityNo
OR dbo.Account.ErfNo = @ErfNo
OR dbo.Customer.Surname = @Surname
OR dbo.Customer.Name = @Name
OR dbo.Cases.ProcessInstanceId = @ProcessInstanceId
OR dbo.Cases.Status = @Status
OR dbo.Cases.Summary = @Summary
OR dbo.Cases.Suspend = @Suspend
OR dbo.Cases.Notes = @Notes
- “当传递null时,返回all”=>
其中col=ISNULL(@argument,col)
- 其余条件应该可以工作,但初始查询的性能不是最好的(multiple join和multiple OR in where子句)可能会导致全表扫描
- 您还可以将完全限定的名称(如
,然后使用[dbo].Customer)别名为c
简单地命名为dbo.Customer.lasname
c.lasname
- 可能您在(相同的表和列)
[dbo]上联接时出错。dbo.Cases.CustomerId=dbo.Cases.CustomerId上的客户
- “当传递null时,返回all”=>
其中col=ISNULL(@argument,col)
- 其余条件应该可以工作,但初始查询的性能不是最好的(multiple join和multiple OR in where子句)可能会导致全表扫描
- 您还可以将完全限定的名称(如
,然后使用[dbo].Customer)别名为c
简单地命名为dbo.Customer.lasname
c.lasname
- 可能您在(相同的表和列)
[dbo]上联接时出错。dbo.Cases.CustomerId=dbo.Cases.CustomerId上的客户
@TakalaniMariba太好了,别忘了标记答案;)@TakalaniMariba太好了,别忘了标记答案;)
ALTER PROCEDURE [dbo].[Search_case]
(
@AccountNo varchar(30) = null,
@DateLogged datetime = null,
@ReferenceNo varchar (50) = null,
@ErfNo varchar (45) = null,
@Surname varchar (255) = null,
@Name varchar (255) = null,
@ProcessInstanceId varchar (50) = null,
@IdentityNo varchar (13) = null,
@Summary varchar (max) = null,
@Suspend varchar (10) = null,
@Notes varchar (max) = null,
@RatesNo varchar (30) = null,
@Status varchar (50) = null
)
WITH EXECUTE AS OWNER, RECOMPILE
AS
SET NOCOUNT ON;
SELECT
dbo.Cases.DateLogged,
dbo.Cases.ReferenceNo,
dbo.Account.AccountNo,
dbo.Customer.RatesNo,
dbo.Customer.IdentityNo,
dbo.Account.ErfNo,
dbo.Customer.Surname,
dbo.Customer.Name,
dbo.Cases.ProcessInstanceId,
dbo.Cases.Status,
dbo.Cases.Summary,
dbo.Cases.Suspend,
dbo.Cases.Notes
FROM
[ICSM_CORRES].[dbo].[Cases]
INNER JOIN
[dbo].Customer ON dbo.Cases.CustomerId = dbo.Cases.CustomerId
INNER JOIN
dbo.Account ON dbo.Customer.AccountNoId = dbo.Account.AccountNoId
WHERE
dbo.Account.AccountNo = ISNULL(@AccountNo, dbo.Account.AccountNo)
OR dbo.Customer.RatesNo = ISNULL(@RatesNo, dbo.Customer.RatesNo)
OR dbo.Cases.DateLogged = ISNULL(@DateLogged, dbo.Cases.DateLogged)
OR dbo.Cases.ReferenceNo = ISNULL(@ReferenceNo, dbo.Cases.ReferenceNo)
OR dbo.Customer.IdentityNo = ISNULL(@IdentityNo, dbo.Customer.IdentityNo)
/* ... and so on */