我有一个带有唯一列“X”的表。
我想使用X的表值对将列表传递给存储过程,我想要返回表中不存在的所有X的列表。
在SQL Server中执行此操作的最有效方法是什么?
编辑:
我想出了这个。不确定它的效率如何:
CREATE TYPE StringList_TBLType AS TABLE (s NVARCHAR(255) NOT NULL PRIMARY KEY)
CREATE PROCEDURE [dbo].ReturnProductsNotExisting
(
@CatalogIdList StringList_TBLType READONLY
)
AS
BEGIN
SELECT s FROM @CatalogIdList
WHERE s NOT IN (SELECT CatalogId from Products)
END