一 操作实例
安装了sql server后此工具已经有了;
以sa登录;
打个命令,没反映;
可执行操作系统命令;加上!!即可;
查看帮助;
再打命令,也没反映;查询结果不显示;
要加上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进行数据库操作了
use master;
go
select * from sysusers;
go
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 语法之前,有相当多的选择参数可用,你可以在命令提示行输入如下的语法:
SqlCmd/?
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 实例。