T-SQL CHANGETABLE 如何拥有带有文字表名称的参数

Jon*_*n49 2 sql-server t-sql

我可以将文字表名称传递到内置函数中CHANGETABLE。我想知道这是如何完成的以及是否可以在我自己的存储过程/内联函数中完成。

在此之上。如果可以先将其传递给文字常量,然后将其传递给函数,这样我就可以获得表 ID,而不必在两个地方指定表名称。

提前致谢。

And*_*y M 5

这只是特殊的语法,仅此而已。应该有一个提示,因为您不仅传递表名,还需要在其前面放置一个关键字VERSION或。CHANGES然而,即使没有关键字,它仍然只是一个语法问题。

这是因为Transact-SQL 函数CHANGETABLES内置的,是该语言的一部分。当然,有人可能会认为用户定义的函数在某种程度上是该语言的扩展。即便如此,此类扩展仍有预定义的语法,并且不包括所有内置函数的语法。例如,您仍然不能将OVER子句放在 UDF 后面(如在窗口函数中),也不能用作AS参数之间的分隔符(如在函数中)CAST,或者强制参数为单个字符串文字而不是表达式(如OPENQUERYor中) OPENROWSET。简而言之,内置函数的语法不能作为您在用户定义函数中可以执行的操作的示例。

综上所述,如果不借助动态 SQL,名称仍然无法在 Transact-SQL 中参数化。