我们有一个存储过程,它接受四个可以为null的参数 - 例如
@FirstName NVARCHAR(50)
@LastName NVARCHAR(50)
@Age INT
@PhoneNumber NVARCHAR(15)
我们有一个名为ID (INT, NOT NULL, IDENTITY)
到目前为止,我们一直在对数据库运行查询
SELECT *
FROM Person
where FirstName = ISNULL(@FirstName, FirstName)
AND LastName = ISNULL(@LastName, LastName)
AND AGE = ISNULL(@Age, AGE)
and PhoneNumber = ISNULL(@PhoneNumber, PhoneNumber)
我想知道是否可以使用MSSQL的MERGE语句来完成上述操作
e.g。
create table #personSearch (ID INT NOT NULL)
MERGE #personSearch AS T
USING Person AS S
ON
T.ID = S.ID
WHEN NOT MATCHED BY TARGET
AND s.ID = @ID
THEN
INSERT (ID)
VALUES (s.ID);
那会触及人员表中临时表中不存在的那些记录 - 我的问题是我该如何处理其他条款?
使用MERGE进行此操作是否值得?
由于