在閱讀了很多論壇並嘗試了很多例子之後,我似乎還是無法將我的舊mySQL Query轉換爲SQL Server 2008.許多示例包括從表1更新列時發現在表2中單值我用的是舊版本的MySQL劇本更新table1與來自表2的數據
UPDATE stock.tbldesk_inv As T1
inner JOIN stock.deskinvfix AS T2 ON T1.serial_number = T2.SN
SET T1.location = T2.Location,
T1.asset_number = T2.AssNumber,
T1.department = T2.dept,
T1.status = T2.Status,
T1.first_name = T2.firstn,
T1.last_name = T2.lastn;
DELETE FROM stock.deskinvfix;
SELECT * FROM stock.deskinvfix;
我發現它令人沮喪的,我可以簡單地改變表名重新使用一個簡單的querys
,因爲我不能將我的表重新命名爲T1或T2,這使得新查詢很難遵循。 personnaly我希望我能留在mySQL上。
UPDATE [InventoryDatabase].[dbo].[Hardware_Inventory] SET
[InventoryDatabase].[dbo].[Hardware_Inventory].ComputerName = [InventoryDatabase].[dbo].[updatepcname].SCCMName
FROM [InventoryDatabase].[dbo].[Hardware_Inventory]
INNER JOIN [InventoryDatabase].[dbo].[updatepcname] ON [InventoryDatabase].[dbo].[Hardware_Inventory]
WHERE [InventoryDatabase].[dbo].[Hardware_Inventory].SerialNumber = [InventoryDatabase].[dbo].[updatepcname].SCCMSerial
誰能告訴我爲什麼SQL服務器不喜歡我使用的mySQL查詢?
我沒有爲你找出答案,只是一些提示,使您的查詢更容易閱讀和遵循。 如果我明白你的意思是「重新命名」,你當然可以在SQL Server中做到這一點。它被稱爲[表別名](technet.microsoft.com/en-us/library/ms187455(v = sql.105).aspx)。 如果從InventoryDatabase運行查詢時不需要使用「[InventoryDatabase]」限定您的表格,因爲這將是默認值。您不需要指定「[dbo]」,因爲它是默認所有者。 試試這些東西,然後也許我們可以瞭解爲什麼SQL Server不喜歡你的查詢。 – nscheaffer
在不相關的說明中,爲什麼我不能在一個評論中使用多個段落或使用Markdown?似乎很奇怪。 – nscheaffer
應該是這樣簡單,但我從SQL Management Studio中 「UPDATE Hardware_Inventory invaild對象爲T1 SET T1.ComputerName = T2.SCCMName FROM INNER JOIN updatepcname爲T2 ON T1.SerialNumber = T2.SCCMSerial ' – GhislainJC