SQLServer2005 安装及使用
安装前提条件:
1、安装IIS5或以上的版本,一般安装不成功都是由于此问题造成的
2、下载SQLServer2005的安装镜像文件,我用的是1.74G的iso文件
安装:
1、设置实例名 1)默认2)自定义(如accp)
不同的实例名,启动服务的名称有区别
net start mssqlserver (默认实例启动服务)
net start mssql$accp (自定义实例名启动服务)
2、安装过程中注意选择混合登录模式,设置sa的密码,如"sa."
配置:
1、在控制面板 --> 管理工具 --> 服务中设置 SQLServer服务启动方式为手动
设置为手动的好处是:如果是自动,开机就会启动此服务,
它占用一定的内存,设置为手动后,用到时再去手动启动服务
2、设置SQLServe的命令行工具sqlcmd
1、在Editplus中加入SQL语法颜色支持
Editplu -- 工具--首选项 -- 文件 -- 设置和语法
1.1、添加文件类型 描述:SQL 文件扩展名:sql
1.2、对应语法文件 ...打开文件浏览,找到sql.stx
1.3、点击应用
2、确保在运行中能直接打开Editplus
运行:editplus
如果不行,我的电脑-- 属性 -- 高级 -- 环境变量 -- 找到path -- 编辑
-- 在变量值中加入Editplus可执行文件路径,如 : ";E:/code/EditPlus3.01"
3、确保在运行中能直接运行sqlcmd
如果不行,同样设置其环境变量path中加一条
如:";D:/Program Files/Microsoft SQL Server/90/Tools/Binn/"
4、添加环境变量sqlcmdeditor ,值为editplus
这样就绑定了sqlcmd编辑器为editplus
5、启用SQLServer2005服务
一般情况下服务开机自启动,如果手工启动,在运行中输入:
net start mssqlserver (默认实例名安装)
net start mssql$accp (实例名为accp安装)
6、好了,一切设置都可以了,下面正式使用sqlcmd
运行:sqlcmd -W (参数使用详见sqlcmd实用工具.txt)
1> (空着,直接回车)
2> :ed
将打开Editplus软件,写好语句后,Ctrl+S保存,Alt+F4退出
回到cmd窗口中就会执行在打开Editplus中输入的Sql语句,以go语句提交
注意:1、为什么会空着一行呢?因为一开始打开窗口,没有输入任何语句,
而打开的editplus语句默认会加上前一次的一个语句的。如果不
空一行,则打不开editplus,写了内容后,以后在1>后就直接可
以用:ed打开editplus了。
2、如果editplus是cmd窗口的:ed打开的,只有关闭editplus才能在
cmd中执行其它操作。
sqlcmd实用工具
运行sqlcmd,进入sqlcmd环境
[sqlcmd参数]
-U 用户名
-P 密码
-S 服务器
-d 数据库
-s 列分隔符
-i 输入文件
-W 删除查询结果中尾随空格
-q 查询语句
-Q 执行查询语句并退出
/? 查询所有参数
[sqlcmd命令]
sqlcmd命令是区别于T-SQL命令的,除了Go语句外其它命令要加":"符号
:reset 清除语句缓冲,当不想执行已输入没执行的语句时用
例:执行到:reset时将忽略select * from tblTeacher的执行
1>select * from tblTeacher
2>:reset
1>:
:listvar 显示所有设置的sqlcmd脚本变量
SQLCMDCOLSEP = " "
SQLCMDCOLWIDTH = "0"
指定用于输出的屏幕宽度。此选项设置 sqlcmd 脚本变量 SQLCMDCOLWIDTH。
该列宽必须是介于 8 和 65536 之间的数字。如果指定的列宽不在此范围内,
则 sqlcmd 将生成错误消息。默认宽度为 80 个字符。
在输出行超出指定的列宽时,将转到下一行。
SQLCMDDBNAME = ""
SQLCMDEDITOR = "notepad"
SQLCMDERRORLEVEL = "0"
SQLCMDHEADERS = "8"
SQLCMDINI = ""
SQLCMDLOGINTIMEOUT = "8"
SQLCMDMAXFIXEDTYPEWIDTH = "0
SQLCMDMAXVARTYPEWIDTH = "256
SQLCMDPACKETSIZE = "4096"
SQLCMDSERVER = "DBOY"
SQLCMDSTATTIMEOUT = "0"
SQLCMDUSER = ""
SQLCMDWORKSTATION = "DBOY"
:setvar varname value 设置sqlcmd脚本变量值
例:将sqlcmd编辑工具设置为记事本
1>:setvar sqlcmdeditor notepad
2>go
:ed 启用文本编辑,打开文本编辑器,保存退出后执行其中的内容
例: :ed命令只能在第二句使用
1>
2>:ed
1>
:r filename 执行其它sql文件内容
例:追加执行文件new.sql的内容
1>:r "d:/accp5.0/database/new.sql"
1>
!! command 执行windows命令 如 !!notepad 将打开记事本
例:运行注册表
1>!!regedit
2>go
:quit 退出sqlcmd工具
:help 查看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
上面的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
[实用技巧]
由于sqlcmd可以使用几个内置的环境变量,如sqlcmdeditor ,我们可以在我的电脑中设置
这样的环境变量sqlcmdeditor,其值为notepad ,则以后启动sqlcmd时其默认编辑器(ed)
为环境变量sqlcmdeditor设置的值,也就是记事本。
3、登录设置(安装的实例名为ACCP)
配置SQL Server Configuration Manager
SQL Server 2005网络配置 --> ACCP的协议 -->
1) 启用Shared Memory
2) 启用Named Pipes
3) 启用TCP/IP
IP1和IP2的TCP端口都设置为1433,默认IP1:本地计算机地址
IP:本地地址127.0.0.1
4) 禁用VIA
SQL Native Client配置 --> 客户端协议
配置同上
圆点(.)登录 --> 启用TCP/IP的动态端口为1433
IPALL中将TCP动态端口更改为1433
使用
1、使用命令行 sqlcmd -W
2、使用企业管理器 sqlwb -nosplash
4、数据库不能创建关系图
问题:数据库用户dbo上没有登录名就不能创建关系图,会出现提示:“此数据库没有有效所有者,因此无法创建关系图”
解决:use 数据库名 exec sp_changedbowner 'sa'
--为数据库添加sa的登录名。