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

时间:2015-05-19 03:45:10

标签: tsql

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

1 个答案:

答案 0 :(得分:0)

通常,应在首次设置应用程序时创建数据库,而不是动态创建。通常,您应该通过直接连接到该服务器来创建数据库。如果要使用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)“表示该对象没有列或当前用户没有对该对象的权限“”多语句事务“中不允许CREATE DATABASE语句。”

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

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

但是,这不是OPENROWSET函数的正常用法,所以如果有任何中断,你就不会从我这里学到: - )。