0

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

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

CREATE DATABASE @machinename+' Test'
4

2 回答 2

1

我真的不知道您为什么要这样做,但是您将需要动态 SQL(所以首先,请转到此链接)。也就是说,你可以这样做:

DECLARE @machinename VARCHAR(100), @SQL VARCHAR(8000)
SET @machinename=HOST_NAME()
SET @SQL = 'CREATE DATABASE ' + QUOTENAME(@machinename + ' Test')
EXEC(@SQL)
于 2012-08-09T20:43:43.770 回答
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 数据库标识符

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

于 2012-08-09T20:45:08.757 回答