Dei*_*ill 3 sql sql-server excel sql-server-2012-express
我正在将数据库从Excel转换为MS SQL服务器,我基本上一无所知.
Excel文件的列标题为GroupID,Name,Members,Remarks
SQL表具有相同的字段.
当我更新SQL时,一些记录是全新的,因此需要附加,其他需要更新一列或两列,而大多数记录根本不需要.到目前为止,我已经采取了懒惰的方式并截断文件并将所有内容重新附加,但是正确的方法是什么?
将文件作为单独的表导入,您可以从那里执行所有更新.根据您的SQL Server版本,您可以使用MERGE语句.敲定插入和更新语句不应该花太长时间.
这样的更新:
UPDATE o
SET name = i.name
FROM originaltablename o
INNER JOIN importedexceltablename i
ON o.GroupID = i.GroupID
WHERE o.name <> i.name
Run Code Online (Sandbox Code Playgroud)
对于插入这样的东西:
INSERT INTO originaltablename
SELECT i.*
FROM importedexceltablename i
LEFT JOIN originaltablename o
ON o.GroupID = i.GroupID
WHERE o.GroupID IS NULL
Run Code Online (Sandbox Code Playgroud)
但请注意,这只是一个让您前进的示例,因为您没有提供足够的信息来获得正确的解决方案.