sql - 在命令行上执行一系列SQL命令

标签 sql sql-server-2005 batch-file database-backups

我想从命令行对 SQL Server 2005 数据库运行一系列 SQL 语句。

当我发布第一个声明时

osql -E -S <Server_Name>\<Instance_Name> -d <Server_Name>

在我无法继续通过脚本进行操作后,它将从那里提示窗口 1>

如何向1>提示提供输入我的意思是给出下一个SQL语句

BACKUP DATABASE  TO DISK = 'c:\test.bak' WITH INIT,SKIP

最后退出到该提示

我尝试使用 && 但我猜这仅适用于命令行命令。

最佳答案

您正在寻找 sqlcmd 工具上的 -Q 开关(不要在 sqlserver 2005 或更高版本上使用 osql)(键入 sqlcmd/? 查看所有选项)或查找 msdn

sqlcmd -E -S <Server_Name>\<Instance_Name> -d <Server_Name> -Q "BACKUP DATABASE TO DISK = 'c:\test.bak' WITH INIT,SKIP"

或者,您可以创建一个 sqlscript 文件,将所有要执行的 sql 语句放入其中。假设您将文件命名为 myscript.sql,osql 命令将如下所示:

 sqlcmd -E -S <Server_Name>\<Instance_Name> -d <Server_Name> -i myscript.sql

关于sql - 在命令行上执行一系列SQL命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13430261/

相关文章:

java - 使用 JDBC 在 MySQL 中插入 select

mysql - 在从同一组中的前一行中减去该行之前,将空值替换为零

sql-server-2005 - 如何将大字符串数据存储到SQL Server 2005数据库中?

batch-file - 重命名批处理文件中的文件路径

windows - 批量转到丢失错误级别

php - 如何从两个没有任何连接的不同表中获取值

mysql - SQL从不同数据库的多个表插入数据

sql - 复制分层数据时保留父子关系

sql - 使用存储过程访问数据

java - Taskkill 一个无标题的进程?