Tsql 针对不同的数据库调用IDENT_CURRENT
我试图在不移动到另一个数据库的情况下调用另一个数据库,但似乎找不到它所属的模式。我尝试了Tsql 针对不同的数据库调用IDENT_CURRENT,tsql,sql-server-2016,Tsql,Sql Server 2016,我试图在不移动到另一个数据库的情况下调用另一个数据库,但似乎找不到它所属的模式。我尝试了sys和dbo,但都没有成功。我搜索了又搜索,但我找不到任何与它的模式或如何调用它相关的东西 请问您如何在另一个数据库上运行这些函数?我知道我最有可能在那个数据库中创建一个函数,然后调用我的函数,但我首先想知道是否有更简单的方法 谢谢 IDENT_CURRENT是一个函数,它不属于模式。 您可以为属于同一服务器中不同数据库的表提供由三部分组成的标识符: SELECT IDENT_CURRENT('<Da
sys
和dbo
,但都没有成功。我搜索了又搜索,但我找不到任何与它的模式或如何调用它相关的东西
请问您如何在另一个数据库上运行这些函数?我知道我最有可能在那个数据库中创建一个函数,然后调用我的函数,但我首先想知道是否有更简单的方法
谢谢
IDENT_CURRENT
是一个函数,它不属于模式。
您可以为属于同一服务器中不同数据库的表提供由三部分组成的标识符:
SELECT IDENT_CURRENT('<Database>.<Schema>.<Table>');
选择当前标识(“..”);
但是,您应该注意,ident_current
可能会产生错误的结果
有关更多信息,请阅读Aaron Bertrand的。
IDENT_CURRENT
是一个函数,它不属于模式。
您可以为属于同一服务器中不同数据库的表提供由三部分组成的标识符:
SELECT IDENT_CURRENT('<Database>.<Schema>.<Table>');
选择当前标识(“..”);
但是,您应该注意,ident_current
可能会产生错误的结果
有关详细信息,请阅读Aaron Bertrand的。我认为您应该首先在另一台服务器上为该表创建一个同义词,然后将该同义词名称传递给IDENT_CURRENT()。一定要让我知道这是否有效。@Zee786,对于另一台服务器,我只需使用
OPENQUERY
:SELECT*FROM OPENQUERY([server],N'SELECT IDENT_CURRENT(N''[DB].[Schema].[Table]'';)
我认为您应该首先在另一台服务器上为该表创建一个同义词,然后将该同义词名称传递给IDENT_CURRENT()。请务必让我知道这是否有效。@Zee786,对于另一台服务器,我只需使用一个OPENQUERY
:SELECT*FROM OPENQUERY([server],N'SELECT IDENT_CURRENT(N'[DB].[Schema].[table];)代码>啊,这是SQLServer本身的一个函数,我的印象是所有的“函数”都是根据sys模式编写的。关于当前的IDENT_
,我没有任何其他选项,因为在许多表上都有而不是触发器,但它不会以任何方式使用而导致问题。很高兴提供帮助,虽然我无法想象在不同的数据库中获取表的标识值的上下文可能是有用的,但我敢打赌你有你的理由。啊,这是SQL Server本身的一个函数,我的印象是所有“函数”都是根据sys模式编写的。关于当前的IDENT_
,我没有任何其他选项,因为在许多表上都有而不是触发器,但它不会以任何方式使用而导致问题。很高兴提供帮助,尽管我无法想象在不同的数据库中获取表的标识值的上下文可能是有用的,但我敢打赌你有你的理由。