2012-08-09 3 views
0

컴퓨터 이름과 주어진 이름을 연결하여 데이터베이스를 만들어야하는 쿼리를 만들어야합니다. 다음과 같은 SQL 쿼리가 있지만 오류가 발생합니다. 제발 제안 해주세요. 난 정말 모르는SQL : 컴퓨터 이름을 연결하여 데이터베이스 만들기

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

CREATE DATABASE @machinename+' Test' 

답변

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에서 :

공백을 그게 당신이 할 수 말했다 또는 특수 문자는 허용되지 않습니다.

+0

+1 "포함 된 공백이나 특수 문자는 허용되지 않습니다." 경고 – Lamak

+0

글쎄, 공간이 문제를 일으키지 않는다고 생각합니다. 잘 작동합니다. – user1399377

+2

"허용되지 않음"이 잘못되었습니다. 아마도 "권장하지 않습니다"라고 말해야합니다. –

1

왜 당신은이 작업을 수행 할 것입니다,하지만 당신은 거 (그래서 첫째, this link로 이동) 동적 SQL이 필요합니다.

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

감사 ... 이것은 내가 찾고있는 것입니다. – user1399377

관련 문제