2012-08-09 27 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 2012-08-09 20:52:32

+0

以及我想空間不會產生任何問題..它工作正常。 – user1399377 2012-08-09 20:53:53

+2

「不允許」不正確。這可能應該說「不推薦」。 – 2012-08-09 21:02:45

1

我真的不知道爲什麼你會想這樣做,但你會需要動態SQL(所以首先,去this link)。這就是說,你可以這樣做:

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

謝謝......這就是我一直在尋找的。 – user1399377 2012-08-09 20:45:52