我必須創建一個查詢,該查詢應該通過連接機器名和任何給定名稱來創建數據庫。我有以下的SQL查詢,但我得到一個錯誤。請建議我。SQL:通過連接機器名創建數據庫
DECLARE @machinename VARCHAR(100)
SET @machinename=HOST_NAME()
CREATE DATABASE @machinename+' Test'
我必須創建一個查詢,該查詢應該通過連接機器名和任何給定名稱來創建數據庫。我有以下的SQL查詢,但我得到一個錯誤。請建議我。SQL:通過連接機器名創建數據庫
DECLARE @machinename VARCHAR(100)
SET @machinename=HOST_NAME()
CREATE DATABASE @machinename+' Test'
你需要使用動態SQL,你需要刪除的' Test'
部分的空間:
DECLARE @machinename VARCHAR(100)
declare @sql varchar(max)
SET @machinename=HOST_NAME()
set @sql = 'CREATE DATABASE ' + QUOTENAME(@machinename + '_Test')
execute(@sql)
嵌入式空間或特殊字符是不允許的。
我真的不知道爲什麼你會想這樣做,但你會需要動態SQL(所以首先,去this link)。這就是說,你可以這樣做:
DECLARE @machinename VARCHAR(100), @SQL VARCHAR(8000)
SET @machinename=HOST_NAME()
SET @SQL = 'CREATE DATABASE ' + QUOTENAME(@machinename + ' Test')
EXEC(@SQL)
謝謝......這就是我一直在尋找的。 – user1399377 2012-08-09 20:45:52
+1表示「不允許嵌入空格或特殊字符」。警告 – Lamak 2012-08-09 20:52:32
以及我想空間不會產生任何問題..它工作正常。 – user1399377 2012-08-09 20:53:53
「不允許」不正確。這可能應該說「不推薦」。 – 2012-08-09 21:02:45