我正在编写一个需要使用用户定义的表类型的存储过程,以便删除多行而无需多次运行存储过程。我的问题是,是否可以编写一个用户定义的表类型(而不是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'
我想知道这是否有效。我是这个概念的新手,我无法通过这种方式找到任何关于使用用户定义表类型的好文档。
感谢您的帮助。
答案 0 :(得分:0)
评论有点长,格式化会被谋杀。这就是我使用连接而不是in。的意思。
DELETE t1
FROM Table1 t1
JOIN UserDefinedTableType udt ON t1.A_ID = udt.ID
WHERE udt.TblClm = 'Table1'