行,想知道怎么用SQL Server命令行来管理数据库,那些sqlserver命令其实挺实用的,简单说就是教你边敲命令边操作数据库那些事儿
- 问答
- 2026-01-15 20:25:33
- 3
行,想知道怎么用SQL Server命令行来管理数据库,这事儿其实挺有意思的,你别看现在大家都喜欢用鼠标点点点的图形界面(比如SQL Server Management Studio,简称SSMS),觉得那更方便,但真正要搞明白数据库是怎么运转的,或者在一些没有图形界面的服务器上干活,命令行可是基本功,非常实用,咱们今天就边敲命令边聊,把那些核心的操作过一遍。
你得能进到命令行的环境里,SQL Server的命令行工具主要是 sqlcmd,这可不是在普通的Windows命令提示符(CMD)或者PowerShell里直接就能用的,你得先打开它,简单的方法是:按Windows键 + R,输入cmd打开命令提示符,然后输入sqlcmd并回车,如果安装没问题,提示符会从C:\>变成1>,这就意味着你已经成功连接上SQL Server的一个实例,可以开始输入SQL语句了。
(这里参考了SQL Server官方文档中关于sqlcmd工具的基本介绍,说明了其作为命令行工具的核心地位。)
刚连上去的时候,你可能用的是默认实例,如果你的SQL Server有具体的实例名,或者安装在其他服务器上,就需要带参数连接,连接一个名叫SQLEXPRESS的本地实例,命令是sqlcmd -S .\SQLEXPRESS,这里的-S参数指定服务器名称,点代表本地机器,如果要连接远程服务器,就把点换成服务器的IP地址或名字。
好了,现在你已经在1>提示符下了,第一件事是啥?先看看有哪些数据库吧,输入SELECT name FROM sys.databases;然后回车,注意,每个命令后面都要跟一个分号,然后按回车,最后还得输入一个GO再按回车,命令才会真正执行,这个GO不是SQL语句,而是sqlcmd工具的指令,意思是“把前面输入的所有语句一起执行”,所以完整的操作是:
1> SELECT name FROM sys.databases;
2> GO
执行后,屏幕上就会列出当前服务器上所有数据库的名字,比如master, model, msdb,还有你自己创建的库。
(此操作思路来源于常规的数据库管理实践,通过查询系统视图sys.databases来获取数据库列表是标准做法。)
光看不行,我们得动手,假设我们要创建一个叫MyTestDB的新数据库,命令很简单:
1> CREATE DATABASE MyTestDB;
2> GO
看到“命令已成功完成”之类的提示,就说明创建好了,你可以再执行一次SELECT name FROM sys.databases;看看,MyTestDB肯定在列表里了。
创建了数据库,我们得用它,切换当前数据库的命令是USE,输入:
1> USE MyTestDB;
2> GO
提示符可能会变成1>,但你已经在这个数据库的上下文里了,接下来所有的操作,比如建表、查数据,默认都是在这个MyTestDB里进行的。

表是存放数据的地方,我们来建一张简单的学生信息表Students,有ID、姓名和年龄字段。
1> CREATE TABLE Students (
2> StudentID int PRIMARY KEY,
3> Name nvarchar(50),
4> Age int
5> );
6> GO
这条命令稍微长点,在sqlcmd里你可以换行输入,直到输入分号和GO。PRIMARY KEY意思是这个StudentID是主键,不能重复。
表建好了,是空的,我们往里插点数据,用INSERT语句:
1> INSERT INTO Students (StudentID, Name, Age) VALUES (1, N'张三', 20);
2> GO
注意,中文前面加个N是为了支持Unicode编码,防止乱码,多插几条:
1> INSERT INTO Students (StudentID, Name, Age) VALUES (2, N'李四', 22);
2> GO
1> INSERT INTO Students (StudentID, Name, Age) VALUES (3, N'王五', 19);
2> GO
存了数据,最关键的是查询,用SELECT语句:
1> SELECT * FROM Students;
2> GO
屏幕上会整齐地显示出刚插入的三条记录,表示所有列,如果你只想看姓名和年龄,可以写SELECT Name, Age FROM Students;。

有时候我们需要修改数据,比如李四年龄登记错了,要改成21岁,用UPDATE语句:
1> UPDATE Students SET Age = 21 WHERE Name = N'李四';
2> GO
这里的WHERE条件非常重要,它指明了只更新姓名为“李四”的那条记录,如果没有WHERE,所有学生的年龄都会被改成21,那可就出大事了!所以敲更新和删除命令时,一定要格外小心条件。
如果某条记录没用了,比如王五转学了,我们可以删除它:
1> DELETE FROM Students WHERE Name = N'王五';
2> GO
同样,WHERE条件确保只删除王五的记录。
除了这些基本的增删改查,sqlcmd还有很多有用的参数,你不想交互式地输入,可以把SQL语句写在一个后缀为.sql的文本文件里,然后用-i参数来执行这个文件,你有一个叫my_script.sql的文件,里面写满了SQL命令,那么可以这样执行:sqlcmd -S .\SQLEXPRESS -i C:\path\to\my_script.sql,这对于批量执行任务特别方便。
再比如,-o参数可以把查询结果输出到一个文件里:sqlcmd -S .\SQLEXPRESS -Q "SELECT * FROM MyTestDB.dbo.Students" -o C:\result.txt,这里的-Q表示执行后面双引号里的一条查询语句然后就退出。
(sqlcmd工具的-i, -o, -Q等参数功能,参考自Microsoft Learn官方文档对sqlcmd实用工具选项的说明。)
你看,这一路敲命令下来,是不是感觉对数据库的每个操作都更清晰了?从连接到查看,从建库、建表到插入、查询、更新、删除,每一步都是你亲手用代码指令完成的,虽然开始可能有点不习惯,但熟练之后,你会发现这种方式效率很高,而且能让你更深入地理解SQL语言本身,下次管理SQL Server数据库时,不妨打开sqlcmd,试着敲几条命令感受一下,这才是真正“操作数据库那些事儿”的硬核方式。
本文由雪和泽于2026-01-15发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/81370.html
