我有MS SQL Management Studio用于编辑表数据,但它没有很好的可用性。我需要在Excel中编辑几百行,能够对列进行编辑以便于编辑过程(SQL Mgmt只有'Open table'功能,没有排序列,只有使用UPDATE SQL代码才能实现更新)。
LinqPad很精彩,但仅限查询。我想编辑表格结果。
我安装了Acqua Studio,它拥有一切,但试用期已过期。你知道任何可以做到这一点的软件免费替代品吗?
编辑:我确实需要更改和输入数据,当然我可以通过SQL代码来完成,但是当你必须手动更新大量行时,它并不快。我需要一个可编辑的有序网格。我将尝试MSManager Lite。
由于
答案 0 :(得分:8)
我将这个工具永久地放在USB记忆棒上 - 真的非常适合免费的“精简版”(专业版也可用)
http://sqlmanager.net/products/mssql/manager
它是一个单一的整体exe,非常适合移植。
答案 1 :(得分:7)
我建议学习必要的SQL来更新表中的相应数据。您可以将SELECT语句与ORDER BY子句一起使用,以按照您希望查看的顺序查看数据,然后构建查询以更新该数据。
您可以使用事务来确保更新的正确性(如果您仍在学习SQL并且不想弄乱数据库)。
BEGIN TRANSACTION -- starts a transaction
ROLLBACK -- stops the transaction and rolls back all changes to the tables
COMMIT -- stops the transaction and commits all changes to the tables
您想要完成/更新的内容,也许我们可以为您提供帮助?
修改强>
您提到要编辑存储在表格中的某些产品名称。而且这将是一次性任务。我在下面设置了一个小型演示,希望能帮助您找到适合您情况的解决方案。将其复制并粘贴到SQL Management Studio会话中。
此外,如果您愿意,可以将当前数据导出为excel,在Excel中编辑该数据,将其作为新临时表导入,并运行SQL更新脚本以更新原始表。
/*
Products Before Update Products After Update
=========================== =============================================
ID ProductName ID ProductName
--------------------------- ---------------------------------------------
1 MSFT 1 Microsoft Corp.
2 APPL 2 Apple Inc.
3 Cisco Systems, Inc. 3 Cisco Systems, Inc.
4 IBM 4 International Business Machines Corp.
5 JAVA 5 Sun Microsystems, Inc.
6 ORCL 6 Oracle Corp.
*/
-- Imagine that this table is a table in your database
DECLARE @products TABLE (
ID INT,
ProductName VARCHAR(255)
)
-- And this table has some product information
-- which you are trying to update with new information
INSERT @products
SELECT 1, 'MSFT' UNION ALL
SELECT 2, 'APPL' UNION ALL
SELECT 3, 'Cisco Systems, Inc.' UNION ALL
SELECT 4, 'IBM' UNION ALL
SELECT 5, 'JAVA' UNION ALL
SELECT 6, 'ORCL'
-- Either build an in-memory temporary table of the product names you wish to update
-- Or do a database task to import data from excel into a temporary table in the database
DECLARE @products_update TABLE (
ID INT,
ProductName VARCHAR(255)
)
INSERT @products_update
SELECT 1, 'Microsoft Corp.' UNION ALL
SELECT 2, 'Apple Inc.' UNION ALL
SELECT 4, 'International Business Machines Corp.' UNION ALL
SELECT 5, 'Sun Microsystems, Inc.' UNION ALL
SELECT 6, 'Oracle Corp.'
-- Update the table in the database with the in-memory table
-- for demo purposes, we use @products to represent the database table
UPDATE p1
SET ProductName = ISNULL(p2.ProductName, p1.ProductName)
FROM @products p1
LEFT JOIN @products_update p2
ON p1.ID = p2.ID
-- Now your products table has been updated
SELECT *
FROM @products
答案 2 :(得分:6)
MS Access允许一些灵活性:你很可能已经安装了它。
adp或mdb(带有链接表)应该允许你做你想做的事情(更容易排序,重新排序列等来管理数据。
答案 3 :(得分:2)
您可能会考虑使用Excel。http://support.microsoft.com/kb/306397/EN-US/我相信还有Excel插件/ VB宏可以使这种集成更加紧密。
否则MS Access是一个合理的答案,gbn也说明了。
答案 4 :(得分:2)
考虑Apex SQL Edit。它具有您提到的所有功能,以及更多,但它不是免费的。
顺便说一句,如果您只需要免费产品,您应该编辑您的主题行。答案 5 :(得分:1)
使用SQL Server Management Studio。您正在使用带有表的打开功能,正确(右键单击表格 - >打开)?仍然这样做,但寻找突出显示的按钮:
http://www.bgalert.com/images/ssms1.jpg
然后您可以根据自己的喜好添加订单,并按突出显示执行按钮:
答案 6 :(得分:1)
您可以在SQL Server Management Studio中直接执行此操作。右键单击表时,选项是“编辑前200行”。您可以通过转到Tools-> Options并单击SQL Server Object Explorer来扩展它。将“编辑顶行的值”更改为0以编辑所有行。
(用户Adam Maras从previous post获取的答案)