我有一个带有唯一列“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