相关文章推荐
不要命的菠萝  ·  [windows]CMD命令行 ...·  1 周前    · 
另类的手链  ·  【Java专栏 ...·  4 天前    · 
温柔的香烟  ·  java如何命令行输入 n ...·  4 天前    · 
暗恋学妹的柳树  ·  libreoffice 命令行 ...·  2 天前    · 
温暖的火腿肠  ·  python TypeError: ...·  9 月前    · 
俊秀的乌冬面  ·  Cause: ...·  10 月前    · 
淡定的猴子  ·  静态构造函数 ...·  1 年前    · 

Sqlcmd

最新版本的 sqlcmd 工具

https://docs.microsoft.com/zh-cn/sql/tools/sqlcmd-utility?view=sql-server-ver15

sqlcmd 会话模式

在命令提示符下键入 sqlcmd,按 Enter
现在,您已与计算机上运行的默认 SQL Server 实例建立了可信连接
1> 是 sqlcmd 提示符,可以指定行号,每按一次 Enter,该数字就会加 1
若要结束 sqlcmd 会话,请在 sqlcmd 提示符中键入 EXIT

查看版本信息

sqlcmd -?

查看帮助信息

sqlcmd -?
sqlcmd -S localhost -U sa -P '123456';

登录并指定数据库

sqlcmd -S localhost\sqlserver_name -d database_name

执行SQL文件

执行脚本文件

sqlcmd -S localhost -U sa -P '123456' -i "G:\test.sql";

执行脚本文件并设置输出到指定文件

sqlcmd -S localhost -U sa -P '123456' -i "G:\t.sql" -o "G:\t2.txt";

注意:这里的路径要使用反斜线。

执行SQL字符串

sqlcmd -S localhost\sqlserver_name -d database_name
-Q "SELECT * FROM [table_name]"

SQL Server 数据库管理

连接SQL Server LocalDB

sqlcmd -S "(localdb)\MSSQLLocalDB"

查看数据库基本信息

use master
exec sp_helpdb [PandaTest]

查看所有数据库

use master
exec sp_helpdb

查看数据库中的所有对象

USE [PandaTest]
EXEC sp_help

查询数据文件或日志文件当前存放路径

注意:先要进入指定的数据库

SELECT physical_name FROM sys.database_files

获取数据库的逻辑名和日志逻辑名

注意:先要进入指定的数据库

select file_name(1),file_name(2)
SELECT name FROM sys.database_files 

修改数据的逻辑名或者日志逻辑名

ALTER DATABASE [database_name] MODIFY FILE ( NAME = database_name, NEWNAME = new_database_name ) 
ALTER DATABASE [database_name] MODIFY FILE ( NAME = database_nameb_log, NEWNAME = new_database_name_log )

SQL Server 表管理

查看指定的表详细信息

USE [PandaTest]
EXEC sp_help [PandaTable]

SQL Server 账户管理

创建登录账户

CREATE LOGIN catalog_srv WITH PASSWORD = 'P@ssw0rd';

SQL Server 用户管理

CREATE USER user_name;

为用户增加角色

EXEC sp_addrolemember N'db_owner', N'username';

SQL Server 备份和恢复

备份数据库

backup database database_name to disk='E:\backup\database_name.bak'

恢复数据库

restore database database_name from disk='D:\backup\database_name.bak'
move 'database_name' to 'D:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\database_name.mdf',
move 'database_name_log' to 'D:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\database_name_log.ldf'

恢复数据库并修改数据库的名称

restore database update_database_name from disk='E:\backup\database_name.bak'

bcp 命令

bcp MDataPort.dbo.Recording out E:\Backup\recording.bcp -S .\sqlexpress -T -c

指定时间戳

bcp "select * from MDataPort.dbo.Recording where Timestamp >= '2019-02-01 00:00:00'" queryout E:\Backup\recording_20190201.bcp -S .\sqlexpress -T -c
bcp "select Timestamp from MDataPort.dbo.Recording" queryout E:\Backup\recording_Timestamp.bcp -S .\sqlexpress -T -c

导入整张表

bcp MDataPort.dbo.Recording in E:\Backup\recording.bcp -S .\sqlexpress -T -c