我必须创建一个查询,它应该通过连接机器名和任何给定名来创建数据库。我有以下SQL查询,但我收到一个错误。请建议我。
DECLARE @machinename VARCHAR(100)
SET @machinename=HOST_NAME()
CREATE DATABASE @machinename+' Test'
答案 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)
不允许嵌入空格或特殊字符。