SQL:通过连接机器名来创建数据库

时间:2012-08-09 20:39:34

标签: sql sql-server-2008

我必须创建一个查询,它应该通过连接机器名和任何给定名来创建数据库。我有以下SQL查询,但我收到一个错误。请建议我。

DECLARE @machinename VARCHAR(100)    
SET @machinename=HOST_NAME()   

CREATE DATABASE @machinename+' Test'

2 个答案:

答案 0 :(得分:1)

我真的不知道你为什么要这样做,但是你需要动态SQL(首先,转到this link)。也就是说,你可以这样做:

DECLARE @machinename VARCHAR(100), @SQL VARCHAR(8000)
SET @machinename=HOST_NAME()
SET @SQL = 'CREATE DATABASE ' + QUOTENAME(@machinename + ' Test')
EXEC(@SQL)

答案 1 :(得分:1)

您需要使用动态SQL,并且需要删除' Test'部分中的空格:

DECLARE @machinename VARCHAR(100)    
declare @sql varchar(max)
SET @machinename=HOST_NAME()  
set @sql = 'CREATE DATABASE ' + QUOTENAME(@machinename + '_Test')

execute(@sql)

来自MSDN Database identifiers

  

不允许嵌入空格或特殊字符。