求详解sql 运行机制 为什么 在 sqlcmd 的dd命令详解可以对windows 平台进行操作

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
标签:至少1个,最多5个
CentOS7 安装并使用SQL Server
Linux 上的 SQL Server 安装指南
笔者基于CentOS7进行安装操作
下载 Microsoft SQL Server Red Hat 存储库配置文件
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server.repo
运行以下命令,安装 SQL Server
sudo yum update -y
sudo yum install -y mssql-server
安装完成之后,执行下面命令,根据提示设置SA密码,并选择相应的版本
sudo /opt/mssql/bin/mssql-conf setup
确保SA账户密码轻度满足默认要求(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)
配置完成后,请验证服务是否正在运行
systemctl status mssql-server
开启防火墙上的 SQL Server 端口,默认为TCP 1433
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
# firewall-cmd未启用不需要做此设置
到此,SQL Server已在CentOS7上正常运行
安装 SQL Server 命令行工具
要创建数据库,需要使用一种工具,可以在 SQL Server 上运行 TRANSACT-SQL 语句进行连接。 以下步骤安装 SQL Server 命令行工具:sqlcmd和bcp
下载 Microsoft Red Hat 存储库配置文件
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
如果服务器以前安装过mssql,需要删除任何较旧的 unixODBC 程序包
sudo yum update
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
运行以下命令以安装mssql 工具与 unixODBC 开发人员包
sudo yum update
sudo yum install -y mssql-tools unixODBC-devel
添加/opt/mssql-tools/bin/路径到环境变量
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' && ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' && ~/.bashrc
source ~/.bashrc
本地连接配置
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例
使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd。 在本教程中,用户进行本地连接,因此服务器名称为 localhost。 用户名为 SA,密码是在安装过程中为 SA 帐户提供的密码。
sqlcmd -S localhost -U SA -P '&YourPassword&'
密码输入可以采用交互的方式
如果连接成功显示如下图:应会显示 sqlcmd 命令提示符:1&
使用SQL Server创建和查询数据
新建数据库,创建一个名为AniuDB的数据库
在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
CREATE DATABASE AniuDB
在下一行中,编写一个查询以返回服务器上所有数据库的名称
SELECT Name from sys.Databases
前两个命令没有立即执行。 必须在新行中键入 GO 才能执行以前的命令:
接下来创建一个新表 itdevops,然后插入两个新行
在 sqlcmd 命令提示符中,将上下文切换到新的 AniuDB数据库:
USE AniuDB
创建名为 itdevops 的新表:
CREATE TABLE itdevops(id INT, name NVARCHAR(50), quantity INT)
将数据插入表中
INSERT INTO itdevops VALUES (1, 'banana', 150); INSERT INTO itdevops VALUES (2, 'orange', 100);
选择数据,运行查询从 itdevops变返回数据
通过 sqlcmd 命令提示符输入查询,以返回 itdevops表中数量大于 100 的行
SELECT * FROM itdevops WHERE quantity & 100;
退出 sqlcmd 命令提示符
从 Windows 进行连接
Windows 上的 SQL Server 工具连接到 Linux 上的 SQL Server 实例,操作方式与连接到任何远程 SQL Server 实例一样
Windows 上运行,连接到 Linux 上的 SQL Server 的其他工具:
SSMS: https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-develop-use-ssms
WP: https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-manage-powershell
SSDT: https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-develop-use-ssdt
0 收藏&&|&&1
你可能感兴趣的文章
1 收藏,1.4k
本作品采用署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。图解sqlserver命令行工具sqlcmd的使用
一 操作实例
安装了sql server后此工具已经有了;
打个命令,没反映;
可执行操作命令;加上!!即可;
再打命令,也没反映;查询结果不显示;
要加上go,才行;
执行sql语句;
在企业管理器中查看,命令行创建的出现了;
前面创建的表不在my_db中,切换上下文,再创建;
在企业管理器查看,命令行插入的数据出现了;
二 sql server 命令行工具
一sqlserver2000下的命令行执行
何为 Osql?osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。osql 工具使用 ODBC 数据库应用程序接口 (API) 与服务器通讯。说白了就是微软作的一个exe程序可以连本机服务器或者其他服务器。
C:&osql -S 服务器名\实例名 -U sa回车会出现下面提示,输入密码。
Password 11111
然后就可以输入sql进行数据库操作了
osql此命令行工具来管理sqlserver
1.建立一个新的登陆用户
用windows验证,
sp_grantlogin
exec sp_grantlogin用户名
SQL Server验证
sp_addlogin
EXEC sp_addlogin用户名,密码
只有拥有sysadminsecurityadmin角色的用户才可以运行sp_grantloginsp_addlogin这个存储过程。
2.上面的用户名只能登陆服务器,还不能对数据库进行操作。
只有拥有sysadmindb_accessadmindb_owner角色的用户才可以运行sp_grantdbaccess
sp_grantdbaccess
EXEC sp_grantdbaccess window用户名,用户名
3.更改密码
exec sp_password旧密码,新密码,用户名
拥有sysadmin角色的用户可以更改其他用户的密码,一般用户只能修改自己的密码
4.建立数据库
create database test(数据库名)
拥有sysadmindbcreator角色的用户可以执行此操作。
5.备份、恢复数据库
BACKUP DATABASE mydb TO DISK = C:MSDEBackupmydb.bak
BACKUP LOG mydb TO DISK = C:MSDEBackupmydb_log.bak
拥有sysadmindb_ownerdb_backupoperator角色的用户可以执行此操作。
RESTORE DATABASE mydb FROM DISK =C:MSDEBackupmydb.bak
拥有sysadmindbcreatordbo角色的用户可以执行此操作。
6.附加和分离数据库
分离数据库:可以从当前SQL Server服务器的实例中分离出数据库。
EXEC sp_detach_db mydb
拥有sysadmin角色的用户可以执行此操作。
附加数据库:.mdf,.ldf这两个文件是必须的,下面的语句可以附加这两个文件到当前系统中,产生新的数据库。
EXEC sp_attach_db @dbname = Nmydb,
@filename1 = NC:MSDEBackupmydb.mdf,
@filename2 = NC:MSDEBackupmydb.ldf
上面的大写字母N是Unicode字符串常量的前缀。前缀&N&在SQL-92标准中定义。
二. SQL Server 2005
SQL Server 2005 仍完整支持前版的 osql 工具程序来连接到 SQL Server 2005。不过,必须利用 SQL Server 2005 所提供的 osql 版本来执行新的功能。若你使用 SQL Server 2000 所提供的 osql 访问 SQL Server 2005,则只能执行与旧版兼容的功能,而部分新功能将无法使用。
在通过 SqlCmd 登录与执行 T-SQL 语法之前,有相当多的选择参数可用,你可以在命令提示行输入如下的语法:
1 SQL Server 2005中的&SQLCMD&工具使用
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
补充:sqlcmd -s 127.0.0.1 -i g:\1.sql -U sa -P 123456
上面的I选项允许你执行一个脚本文件,另外,你也可以指定O选项,把命令的输出导出到指定文件,当然,我们也可以在代码中指定输出结果,如下:
C:sqlcmd&sqlcmd 1& :out output.txt 2& :r test.sql
在脚本中使用变量
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:sqlcmdbackuptemplate.sql use master backup database [$(db)] to disk=&$(file)& e:sqlcmdbackupsingle.sql :setvar db msdb :setvar file c:tempmsdb.bak :r e:sqlcmdbackuptemplate.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
2启动 sqlcmd 实用工具并连接到 SQL Server 的默认实例
在&开始&菜单上,单击&运行&。 在&打开&框中,键入 cmd,然后单击&确定&打开命令提示符窗口。
在命令提示符处,键入 sqlcmd。
按 Enter 键。
现在,您已与计算机上运行的默认 SQL Server 实例建立了可信连接。
1& 是 sqlcmd 提示符,可以指定行号。 每按一次 Enter,该数字就会加 1。
若要结束 sqlcmd 会话,请在 sqlcmd 提示符处键入 EXIT。
3启动 sqlcmd 实用工具并连接到 SQL Server 的命名实例
打开命令提示符窗口,键入 sqlcmd -SmyServer\instanceName。 使用计算机名称和要连接的 SQL Server 实例替换 myServer\instanceName。
按 Enter 键。
sqlcmd 提示符 (1&) 指示已连接到指定的 SQL Server 实例。使用cmd命令行窗口操作SqlServer的方法
本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver,如果你在一台没有Sqlserver的电脑恰巧想去操作一下公司的Sqlserver,可以使用这个方法
osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。osql 工具使用 ODBC 数据库应用程序编程接口 (API) 与服务器通讯。
本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver,首先我们可以运行 osql ?/ ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来. osql下载地址 http://www.jb51.net/database/57662.html
(有图有真相)
然后我们知道connect 服务器是-S,登陆ID是-U,密码是-P
那我们现在来操作试试看。
运行 osql -S 【数据库服务器】 -U 【登陆用户名】 -P 【登陆密码】
出现 1& 表示连接成功,这时候你可以输入sql语句来进行操作了。
以CMD命令行来操作Sqlserver,DotNetGeek觉得没有多大的用处,而且,select出来的数据排版显示不整齐美观,
如果你在一台没有Sqlserver的电脑恰巧想去操作一下公司的Sqlserver,可以使用这个方法。
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.047 (s). 13 q(s)求详解sql 运行机制 为什么 在 sqlcmd 的命令可以对windows 平台进行操作_百度知道
求详解sql 运行机制 为什么 在 sqlcmd 的命令可以对windows 平台进行操作
我有更好的答案
这个称为存储过程 可以在一定权限范围内调用cmd 命令
采纳率:59%
sql是数据库语言,它本身可以直接在数据库上操作,sqlcmd是通过程序与数据库建立的连接将sql语句传给数据库,从而进行数据库操作。
为您推荐:
其他类似问题
运行机制的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 sqlcmd 的文章

 

随机推荐