用户定义的表格类型

时间:2016-05-09 15:18:02

标签: sql-server tsql stored-procedures user-defined-types

我正在编写一个需要使用用户定义的表类型的存储过程,以便删除多行而无需多次运行存储过程。我的问题是,是否可以编写一个用户定义的表类型(而不是17;每个表一个),并添加一个列,指定与之相关的表。例如,这是我的删除声明:

DELETE FROM Table1
WHERE A_ID IN (SELECT ID FROM UserDefinedTableType WHERE TblClm = 'Table1'

我可以为上述语句和以下语句使用相同的用户定义表类型

DELETE FROM Table2
WHERE A_ID IN (SELECT ID FROM UserDefinedTableType WHERE TblClm = 'Table2'

我想知道这是否有效。我是这个概念的新手,我无法通过这种方式找到任何关于使用用户定义表类型的好文档。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

评论有点长,格式化会被谋杀。这就是我使用连接而不是in。的意思。

DELETE t1
FROM Table1 t1
JOIN UserDefinedTableType udt ON t1.A_ID = udt.ID 
WHERE udt.TblClm = 'Table1'