sqlcmd 命令

article/2025/11/10 7:39:51

SQLCMD的介绍  

文章转载自:http://blog.sina.com.cn/s/blog_3eec0ced0100mhm2.html

最近经常用到超过80M *.sql文件的导入问题。

上网找了一下,发现超过80M的文件是不能在查询分析器中执行的。

 

找了些解决方案,个人感觉最简单的方法就是这个SQLCMD的,拿出来分享一下,也方便日后自己使用。

1 sqlcmd -SERVERNAME -USERNAME -PASSWORD -filename.sql


下面的内容是详细介绍sqlcmd的,有兴趣的朋友可以看看

 

 

因为公司的业务需要,所以采集了一个2W多条的数据,都是insert语句,生成一个200多M的数据,谁料在通过sql server 2005不能直接打开,导入也存在问题,用记事本也打不开,复制贴也不行,最后还是一同学提了个醒用命令在dos下执行.sql文件,才有了办法,同时也 在一热心网友的帮助下完成了这个让我头疼半天的活,下面我对这些做一下介绍,应该对有这样需要的朋友很好的帮助。

如果装的是2000版的sql那用的命令是osql,05的用sqlcmd

其实用法很简单,任何技术,一旦说穿就失去了它的神秘,这有点像生活中的很多事,好了废话了半天,还是切入正题,开工吧:

其实就是一句很简单的话句:

sqlcmd -i sqlfile.sql -d databasename -s 127.0.0.1

这个sql文件要放在c:\下

就这么简单..

sqlcmd 使用笔记

登录sqlcmd

命令 sqlcmd -S 服务器名称 -U 帐户 -P 密码

示例 sqlcmd -S "HOMESQLEXPRESS" -U "sa" -P "12345678"

直接执行SQL Script

命令 sqlcmd -S 服务器名称 -U 帐户 -P 密码 -d 数据库 -i SQL Script

示例 sqlcmd -S "HOMESQLEXPRESS" -U "sa" -P "12345678" -d "Database" -i "E:My Documentstest.sql"

查询当前服务器上的数据库

(*) 可能需要 Use Master

1. Select [Name] From sysdatabases

2. sp_helpdb

查询当前数据库的表和存储过程

表:select * from sysobjects where status >=0 and xtype='U'

存储过程:select * from sysobjects where status >=0 and xtype='P'


------------------------
1、你可以用SQLCMD执行交互式动作,如:
C:\sqlcmd>sqlcmd

1> SELECT name from sys.databases

2> GO

你也可以试着键入如下命令,现实服务器列表

1>:ServerList

SERVERS:

WUYZ

1>如果想看其他命令的使用,可以键入:Help /?

2、执行SQL脚本文件

你可以在SQLCMD命令上加入参数I来执行SQL脚本文件,例如:

C:\sqlcmd>sqlcmd -i test.sql

上面的I选项允许你执行一个脚本文件,另外,你也可以指定O选项,把命令的输出导出到指定文件,当然,我们也可以在代码中指定输出结果,如下

C:\sqlcmd>sqlcmd

1> :out output.txt

2> :r test.sql

3、在脚本中使用变量

SQLCMD支持可以在脚本中接收用户传入的变量信息,如下面语句:

SET NOCOUNT ON

Select $(Cols) from $(tablename)

GO

上面语句请求2个参数,我们可以通过指定相应的参数信息传给脚本,如下:

C:\sqlcmd>sqlcmd -i test.sql -o Output.txt -v cols="name,object_id,create_date" tablename="sys.objects"

上面语句的用途是:执行TEST.SQL脚本文件,并把输出的信息输出到OUTPUT.TXT文件中,并分别指定了COLS,TABLENAME的参数值

4、在脚本中设置变量的值
除了通过外部传入参数的值外,还可以在内部设置参数的值,如下面例子

e:\sqlcmd\backuptemplate.sql

use master

backup database [$(db)] to disk='$(file)'

e:\sqlcmd\backupsingle.sql

:setvar db msdb

:setvar file c:\temp\msdb.bak

:r e:\sqlcmd\backuptemplate.sql

如果你想知道当然定义了哪些变量,可以使用:listvar命令来显示。主要命令汇总:

:r filename

:ServerList

:List

:Listvar

:Error filename | STDOUT | STDERR

:Out filename | STDOUT | STDERR

:Perftrace filename | STDOUT | STDERR

:Connect server[\instance] [timeout] [user_name[password] ]

:On Error [exit | ignore]

:SetVar variable value

:Help:XML ON | OFF

主要环境变量汇总:

-a SQLCMDPACKETSIZE

-d SQLCMDDBNAME

-H SQLCMDWORKSTATION

-h SQLCMDHEADERS

-l SQLCMDLOGINTIMEOUT

-m SQLCMDERRORLEVEL

-P SQLCMDPASSWORD

-S SQLCMSSERVER

-s SQLCMDCOLSEP

-t SQLCMDSTATTIMEOUT

-U SQLCMDUSER

-w SQLCMDCOLWIDTH

------------------------
T-SQL还原数据库备份
restore database TionkDatabase from disk='E:\@工作\讯客\项目\讯客直销\代码\db20080521'
width move "源文件" to "目标文件位置"

------------------------
使用 T-SQL 执行还原

RESTORE 命令有两种形式显示如下:
RESTORE DATABASE 还原完整的资料库、档案或档案群组。
RESTORE LOG 还原交易记录档。

RESTORE 陈述式

执行完整资料库还原时 RESTORE 陈述式的语法如下:
RESTORE DATABASE database_name
[ FROM backup_device ]
[ WITH options ]
这个陈述式只要求资料库的档案名称和备份所在的位置。

执行档案和档案群组还原时陈述式的语法如下:
RESTORE DATABASE database_name
[ FILE = file_name ]
[ FILEGROUP = filegroup_name ]
[ FROM backup_device ]
[ WITH options ]
这个陈述式只要求资料库名称、档案名称或档案群组名称和备份所在的位置。

执行交易记录还原时陈述式的语法如下:
RESTORE LOG database_name
[ FROM backup_device ]
[ WITH options ]
就如同其他的命令,database_name 是还原将要执行的资料库名称。backup_device 参数可以是逻辑备份装置名称或实体装置的名称。如果要指定一个实体装置,必须限定它的装置类型-也就是说,装置名称前面必须加上 DISK=、TAPE= 或 PIPE=。可以指定一个或多个装置,中间以逗号隔开。

如果没有提供 FORM 子句,还原将无法进行,而且仍然会执行回复(除非执行NORECOVERY 选项)。这项技术可以用来将资料库设定为回复模式,而不还原其他附加资料。例如,可以执行多个差异还原操作,然后执行 RESTORE 陈述式,不需要 FORM 子句来将资料库设定为回复模式,就能够启动回复过程。

选项

选项                        说明
RESTRICTED_USER             设定新还原资料库的安全性,只有 db_owner、dbcreater 和 sysadmin 角色成员才能存取该资料库。
FILE = file_number          如果在储存媒体中有多个备份集,可用来识别所使用的备份集。例如设定该数值为2,则使用磁带上的第二个备份集。
PASSWORD = password         指定储存备份的密码。
MEDIANAME =media_name       指定媒体的名称。
MEDIAPASSWORD = password    指定储存媒体的密码。
MOVE 'logical_file_name' TO 'OS_file_name'
更改还原档案的位置,例如:MOVE 'Northwind' TO 'D:\data\Northwind.mdf'。如果旧的磁碟无法使用,而需要还原到新的磁碟上时,可以使用这个选项。

NORECOVERY |RECOVERY | STANDBY = undo_file
NORECOVERY 指定在还原后,交易将无法退回或重新进行。如果将还原其他的备份(差异式备份或交易记录档备份),则需要用到这个选项。REVOVERY 为预设选项,它指定执行回复操作,并退回每个没有提交的变更。STANDBY 指定在还原需要还原情况下,建立还原(undo)档案。
KEEP_REPLICATION 指定当资料库还原时复制设定要保存下来。
NOUNLOAD | UNLOAD NOUNLOAD 指定在还原完成后不卸载储存媒体(例如,覆写备份磁带并弹出)。UNLOAD 为预设选项,指定在还原完成后卸载储存媒体。
REPLACE 指出即使资料档案已经存在,SQL Server 仍将还原这些档案。现存的档案将被删除和覆写。如果没有指定 REPLACE,那麼 SQL Server 将会核对 database_name 是否已经存在。如果已经存在,那麼将终止还原操作。这个安全特性帮助避免无意地将还原覆写正在工作的资料库。
RESTART 指定 SQL Server 在还原操作被中断后重新启动还原操作。
STATS [ = percentage ] 在还原操作完成了指定的百分率后显示讯息。如果需要监控操作的过程,这个选项将会很有用。
PARTIAL 指定执行部份还原。
STOPAT = date_time

(log restore only) www.koogoogle.cn/whois
指定资料库回复到 data_time 指定时刻的资料状态(只对记录档还原有效)。
STOPATMARK = 'mark' 指定还原操作进行到标记处。
STOPBEFOREMARK = 'mark' 指定还原操作进行到标记之前。

 

通过OSQL命令执行SQL SERVER批SQL

通过System.Data.SqlClient命名空间只能执行单条SQL,或多个内容中间用;分开,不能执行类似等命令,有没有一种方法能类似查询分析器一样执行一些批命令呢,答案是通过OSQL来执行。
OSQL详细用法:http://technet.microsoft.com/zh-cn/library/ms162806.aspx
通地进程来调用:

 

SQLCMD的介绍C#代码
 1         /// <summary>
 2         /// 执行OSQL命令
 3         /// </summary>
 4         public static  void ExcuteOsqlCmd(string cmd, string errorFile, string filePath)
 5         {
 6              System.Diagnostics.Process = new System.Diagnostics.Process();
 7 
 8              p.StartInfo.FileName = "osql";
 9              p.StartInfo.Arguments = cmd;
10              p.StartInfo.UseShellExecute = false;
11 
12              p.StartInfo.RedirectStandardError = true;
13              p.StartInfo.CreateNoWindow=true;
14              p.Start();
15              p.WaitForExit();
16             //p.Close();
17             int exitCode = p.ExitCode;
18             if (exitCode != 0)
19             {
20                  StreamReader sr = new StreamReader(errorFile, System.Text.Encoding.Default);
21                 string all = sr.ReadToEnd();
22                  sr.Close();
23                 //ExcuteOtherCmd(string.Format("notepad \"{0}\"", errorFile));
24                 throw new StepException(all);
25              }
26          }


 调用如下:
string comm = string.Format(" -U {5} -P {0} -S {1} -d {2} -b -e -i \"{3}\" -o \"{4}\"", pass,
                                         conn.DataSource,
                                         conn.Database,
                                         FilePath, errorFile,user);
Process.ExcuteOsqlCmd(comm, errorFile, FilePath);//直接执行一个SQL文件,路径为FilePath


http://chatgpt.dhexx.cn/article/iGMgLx4x.shtml

相关文章

cmd执行服务器sql文件命令行,Dos命令提示符下 - 用sqlcmd执行*.sql语句

Dos命令提示符下 - 用sqlcmd执行*.sql语句 1)在Dos命令下执行sqlcmd命令(当然事先需要将sqlcmd增加到环境变量中去), 2)下面白色部分替换为服务器名或计算机名即可 sqlcmd -S (local) -U sa -P 123 -d testdb -i C:\temp\data.sql 参数说明:-S 服务器地址 -U 用户名 -P 密码…

sql安装弹出sqlcmd_SQL Server中SQLCMD实用工具概述

sql安装弹出sqlcmd This article is aimed at helping you understand the sqlcmd utility. Of course, this is a tool most of us have used it at several occasions given that the tool has been around for a decade now. However, to be a solid starting point, this a…

SQLServer知识:sqlcmd用法笔记

今天给大家介绍sqlcmd用法笔记&#xff0c;希望对大家能有所帮助&#xff01; 1、介绍 sqlcmd是一个 Microsoft Win32 命令提示实用工具&#xff0c;可以通过该命令工具实现SQL语句、脚本的执行&#xff0c;并且可以实现脚本任务的自动化。 2、使用场景 2.1 针对大文件脚本的执…

Sqlcmd使用详解

Sqlcmd实用工具&#xff0c;可以输入 TRANSACT-SQL 语句、 系统过程和脚本文件&#xff0c;通过各种可用模式&#xff1a; 通过命令提示符。在中查询编辑器在 SQLCMD 模式下。在 Windows 脚本文件。在 SQL Server 代理作业的操作系统 (Cmd.exe) 作业步骤。 该实用工具使用 OD…

如何在CMD下写SQL语句

1、WinX->搜索环境变量 2、选择环境变量 3、在系统变量中找到Path&#xff0c;并双击进入 4、选择新建 5、选择安装MySQL的盘&#xff0c;找到bin&#xff0c;并复制路径到刚刚新建的Path中&#xff0c;例如笔者安装的盘是D盘 6、把复制好的路径放到Path中 7、WinR->直…

jquery设置cookie、删除cookie、获取cookie

1.引入两个js 去bootcdn搜索就行。 jquery.js <script src"https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>jquery cookie <script src"https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"…

关闭浏览器 清除cookie

根据客户要求使用dedecms v5.6版本&#xff0c;发现了一个会员登录的bug&#xff01;看来dedecms也不过如此&#xff01; 首先说说bug所在&#xff1a;在会员登录页面 /member/index.php 登录的时候 有效期如果选择‘即时’&#xff0c;那么就永远也登不上去了&#xff01; 原因…

删除cookie删不掉的问题

文章转自&#xff1a; https://blog.csdn.net/swimming_in_it_/article/details/80290547 https://blog.csdn.net/huanshiwushuang/article/details/70172536 http://php.js.cn/blog/delete-cookie/ 不知道能不能解决你的问题,但是我来说说我的经历&#xff0c;昨天在用Yii…

Javascript清除所有的cookie

只需一个js函数即可&#xff1a; //清除所有cookie函数function clearAllCookie() {var keys document.cookie.match(/[^ ;](?\)/g);if(keys) {for(var i keys.length; i--;)document.cookie keys[i] 0;expires new Date(0).toUTCString()}} 测试的所有代码如下&#xf…

JS创建、获取、删除 cookie 方法

js 创建 cookie 方法 // 没有设置 cookie 过期时间的话&#xff0c;默认是 会话cookie(浏览器关闭时&#xff0c;该cookie失效&#xff0c;被删除) document.cookie cname "" value; // 设置了过期时间的话&#xff0c;在设置的时间段内 cookie 一直存在有效&…

浏览器cookie怎么清除,彻底清除上网痕迹只需这几步

很多用户对cookie不是很了解&#xff0c;我们使用windows系统电脑浏览各个网站的时候都会产生cookie&#xff0c;cookie记录用户名、密码等信息。显而易见的是&#xff0c;cookie和网络隐私安全息息相关&#xff0c;有些恶意网站会利用cookie来侵犯用户隐私安全。因此清理cooki…

vcruntime140.dll发生访问冲突

0x6EF538DC (vcruntime140.dll)处引发的异常: 0xC0000005: 写入位置0x00000000 时发生访问冲突 发生以上问题&#xff0c;有可能为内存不足引起&#xff0c;可尝试分配更大内存。 在本次报错中&#xff0c;我们将1024*1024*8的BUFFER_SIZE扩大为1024*1024*20&#xff0c;成功解…

电脑提示vcruntime140_1.dll丢失怎么安装?

许多用户在使用电脑的时候&#xff0c;在安装运行某些程序的时候&#xff0c;电脑突然提示由于找不到vcruntime140_1.dll&#xff0c;无法继续执行代码&#xff0c;遇到这种情况我们应该怎么解决呢&#xff1f;下面小编就带着大家一起看看吧&#xff01; 首先是打开电脑浏览器后…

电脑提示vcruntime140_1.dll丢失的正确修复方法

vcruntime140_1.dll是vs2010编译的程序默认的库文件它的丢失易导致游戏、应用软件等程序运行出现错误&#xff0c;致使程序无法正常运行&#xff0c;下面小编教大家电脑提示vcruntime140_1.dll丢失的正确修复教程 首先打开一个360&#xff0c;搜狗等等电脑浏览器&#xff0c;输…

vcruntime140_1.dll缺失

问题&#xff1a;安装mysql-8.0.29执行mysql -install命令出现由于找不到VCRUNTIME140_1.dll&#xff0c;无法继续执行代码。 解决方法&#xff1a;下载VCRUNTIME140_1.dll 把文件放到C:\Windows\System32目录下

由于找不到vcruntime140_1.dll,无法继续执行代码重新安装程序可能会解决此问题

问题场景&#xff1a; 提示&#xff1a;由于找不到VCRUNTIME140_1.dll,无法继续执行代码&#xff0c;重新安装程序可能会解决此问题。 问题描述 提示&#xff1a;一般是重置完电脑打开软件时出现&#xff0c;或者是在安装软件的过程中会出现以上问题 先查看是否已经安装有 Vi…

【vcruntime140.dll文件下载】vcruntime140.dll丢失的解决方法

vcruntime140.dll文件对一些电脑软件、电脑游戏等程序的正常运行起到关键性作用。对于弹出缺少此类文件的弹窗&#xff0c;用户们很多时候也摸不着头脑&#xff0c;程序明明上次都能正常运行&#xff0c;突然就弹出缺少vcruntime140.dll文件的提醒窗口。通过小编此次编辑的文章…

unity报错,提示找不到vcruntime140

重装系统后&#xff0c;发现打开unity提示:unity找不到vcruntime140,等好几个.dll格式的文件 于是就想到了系统环境缺少dll&#xff0c;于是打开这个DirectX修复工具4.1&#xff0c;点击检测并修复&#xff0c;提示修复完成&#xff0c;最好重启一下&#xff0c;ok啦 这里我已…

计算机提示“找不到vcruntime140.dll,无法继续执行代码可”以这样子修复

首先&#xff0c;对于那些不熟悉的人来说&#xff0c;vcruntime140.dll是一个关键文件&#xff0c;用于在Windows操作系统上运行使用C语言编写的大型应用程序。如果你正在运行或安装这样的应用程序&#xff0c;但找不到vcruntime140.dll文件&#xff0c;那么你的应用程序可能无…

vcruntime140.dll文件丢失的解决方法

打开电脑浏览器顶部栏目输入【dll修复程序.site】然后点击进入下载vcruntime140.dll文件 下载完成vcruntime140.dll文件安装包。右键进行解压&#xff0c;然后再右键点击以管理员身份运行打开 打开后点击开始安装&#xff0c;电脑开始自动检测丢失的vcruntime140.dll文件等待自…