传递表类型以选择存储过程并使用LIKE

时间:2018-06-19 09:59:13

标签: sql-server

我从未在表格类型之前使用过。我想将表类型dn_test1_typex中的值传递给SELECT WHERE LIKE的存储过程 可能吗?我的数据库中INNER JOIN方法非常慢。
(我希望sp能产生:xxxpifxxx - volion - nax)
谢谢。

程序dn_xx

GO
/****** Object:  StoredProcedure [dbo].[dn_xxx]    Script Date: 6/19/2018 12:43:35 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[dn_xxx]
(
    @TableVar dn_test1_typexy READONLY
)
AS
BEGIN
SET NOCOUNT ON;

   SELECT  * FROM dn_test2
   WHERE col1a like(not IN) (SELECT col1 from @TableVar)

END

表dn_test2

 INSERT INTO dn_test2(col1a,col2a,col3a)
    VALUES ('xxxpifxxx','volion','nax'),
        ('der','ter','byt')      

表格类型dn_test1_typex

DECLARE @TableVar dn_test1_typexy

    INSERT INTO @TableVar(col1,col2,col3)
    VALUES ('pif','ion','frt'),
        ('rik','def','bui') 


exec dn_xx @TableVar  >>>    This is not permitted when the subquery follows =, !=, <, <= , >, >=

0 个答案:

没有答案