TSQL-如何根据某些条件将变量声明为其他(udtt)类型?

时间:2018-09-12 12:59:47

标签: tsql dynamic-sql user-defined-types

我当前正在尝试将变量@MyTable声明为用户定义的表类型(udtt)。但是,将其声明为哪个udtt取决于变量@Schema的值。为此,我做了以下尝试:

尝试一个:

IF (@Schema = 'sch_A') DECLARE @MyTable [sch_A].[udtt_Table]
IF (@Schema = 'sch_B') DECLARE @MyTable [sch_B].[udtt_Table]
IF (@Schema = 'sch_C') DECLARE @MyTable [sch_C].[udtt_Table]

尝试两个:

DECLARE @sql = 'DECLARE @MyTable [' + @Schema + '].[udtt_Table]'

我第一次尝试的问题是每个@IF语句都声明了变量@MyTable,即使被评估为false。这将导致错误,指出已声明变量@MyTable。 backend对此问题进行了讨论。

我的第二个问题也与变量@MyTable的范围有关-尽管我对为什么是这种情况的理解更加有限。

任何人都可以建议一种可以达到预期效果的方法吗?

0 个答案:

没有答案