Tsql 使用T-SQL在链接服务器上创建数据库

Tsql 使用T-SQL在链接服务器上创建数据库,tsql,Tsql,假设我的应用程序当前连接到服务器a中的一个数据库,并且在服务器B中有一个创建审核数据库的功能。在这种情况下,是否可以使用T-SQL创建数据库?通常,数据库应该在应用程序首次设置时创建,而不是动态创建。通常,您应该通过直接连接到该服务器来创建数据库。如果要使用T-SQL连接到另一台服务器,可以使用OPENROWSET函数,但这不是为创建数据库而设计的。要使用OPENROWSET函数,首先需要启用该选项,如下所示: EXEC sp_configure 'show advanced options',

假设我的应用程序当前连接到服务器a中的一个数据库,并且在服务器B中有一个创建审核数据库的功能。在这种情况下,是否可以使用T-SQL创建数据库?

通常,数据库应该在应用程序首次设置时创建,而不是动态创建。通常,您应该通过直接连接到该服务器来创建数据库。如果要使用T-SQL连接到另一台服务器,可以使用OPENROWSET函数,但这不是为创建数据库而设计的。要使用OPENROWSET函数,首先需要启用该选项,如下所示:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE 
go
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE
如果尝试使用OPENROWSET函数创建数据库,则可能会遇到多个错误(如“链接服务器的OLE DB提供程序”SQLNCLI10“(null)”表示对象没有列或当前用户对该对象没有权限”或“在多语句事务中不允许创建数据库语句”)

您可以通过以下方式克服这些限制:

SELECT * FROM OPENROWSET('SQLNCLI', 
'Server=YOURSERVERNAME;Trusted_Connection=yes;',
'ROLLBACK; CREATE DATABASE Test; SELECT 1 A')

但是,这不是OPENROWSET函数的正常用法,因此,如果出现任何问题,您没有从我这里学到:-)。

数据库是如何连接的?为了澄清问题,服务器B被定义为服务器a上的链接服务器?您想从服务器a发出一条语句,在服务器B上创建一个数据库吗?