在更新脚本方面,我有点偏执和新手。此脚本是否可以在SQL Server 2014中运行?
我在地址表的country_code
列中有条目我要更新,这些条目是供应商地址;我只需要更新芬兰的恐怖地点(你会从最后一行看到)。
剧本:
USE %dbname%
UPDATE [address_backup]
SET [address_backup].[country_code] = 'FI'
FROM [dbo].[address_backup]
LEFT JOIN [supplier_table] --Joins the Address table with the Supplier table
ON [address_backup].[addressid] = [supplier_table].[addressid]
LEFT JOIN [territory] --Join to the area table
ON [supplier_table].[territoryid] = [territory].[territoryid]
WHERE
[supplier_table].[deleted] <> '1' --Not Deleted
AND [territory].[territoryid] = '1000070' --Finland
我怀疑它不起作用?
答案 0 :(得分:2)
假设frnachisees_territory是领土是的,它有效; 我只是检查是否需要所有JOIN,因为你在最后一个中使用了borderid然后在WHERE子句中:你能避免最后一次JOIN并使用supplier_table.territoryid作为WHERE吗?
编辑:可能的脚本
USE %dbname%
UPDATE [address_backup]
SET [address_backup].[country_code] = 'FI'
FROM [dbo].[address_backup]
LEFT JOIN [supplier_table] --Joins the Address table with the Supplier table
ON [address_backup].[addressid] = [supplier_table].[addressid]
WHERE
[supplier_table].[deleted] <> '1' --Not Deleted
AND [supplier_table].[territoryid] = '1000070' --Finland
*我也会按照Juan Carlos Oropeza的建议将LET JOIN与INNER JOIN交换