docker-安装使用mssqlserver实战

#############安装mssqlserver需要至少2000M的内存###############
# 拉取镜像(在docker hub中搜索要拉取的镜像,也可以从其他一些镜像仓库,比如自己的阿里云)
docker pull microsoft/mssql-server-linux
# 启动一个sqlserver(-v sqlvolume:/var/opt/mssql 这一部分, 用于为这个sql server创建一个volume
# 名为sqlvolume,并且这个容器的位置在docker虚拟的linux的/var/opt/mssql中),-h(to explicitly set
# the container hostname, if you don't specify it, it defaults to the container ID which is a randomly 
# generated system GUID.),方便后面识别
# 注意,需要先删除已有的sqlvolume,否则创建出来的container状态会由up变为exit
# 跑sqlserver需要至少2000M,vagrantfile需配置
# config.vm.provider "virtualbox" do |vb|
#   vb.memory = "3072"
#   vb.cpus = 2
# end
docker run -it -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Kmj123456' -p 1433:1433 -v sqlvolume:/var/opt/mssql --name mssql -h mssql -d microsoft/mssql-server-linux [/bin/bash]
# 查看创建的volume
docker volume ls
# 删除volume
docker volume rm volumeName
# 停止/启动容器
docker stop/start container
# 删除容器
docker rm -f containerid [containerid]
# 查看某个container的日志
docker logs container
# 进入到container中
docker exec -it c4396fe6e95e bash
# 进入sqlcmd命令行
 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Kmj123456"
# 进行一些查询
获取所有数据库名:
SELECT Name FROM Master..SysDatabases ORDER BY Name
/*1.查询SQLSERVER中的所有数据库*/
use master
go
select * from sysdatabases where dbid>4/*where条件用来去掉系统数据库*/
go
/*2.查询SQLSERVER中的所有数据库(存储过程)*/
exec sp_helpdb
/*3.查询指定数据库中的表*/
use 数据库名
go
select * from sysobjects where xtype='u'/*where条件用来去掉系统表*/
go
/*4.显示当前数据库所有表的详细信息*/
use 数据库名
go
SELECT
表名=case when a.colorder=1 then d.name else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists
(
     SELECT 1 FROM sysobjects where xtype='PK' and name in
     (
         SELECT name FROM sysindexes WHERE indid in
         (  
              SELECT   indid   FROM   sysindexkeys   WHERE   id   =   a.id   AND   colid=a.colid
         )
     )
)
then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√' else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')/*此列在绑定GridView时,如选择动态生成列,始终无法绑定.手动指定列后正常,原因不详*/
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
//SQL2005中用left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id
left join sysproperties g on a.id=g.id and a.colid=g.smallid
where   d.name='要查询的表'
order by a.id,a.colorder
go
/*5.删除字段*/
alter table tb_commonLog --表名
        drop
        column l_test, --去掉字段1
        column l_test2, --去掉字段2
        constraint pk_name --去掉主键
go
# 导入数据
docker cp <Host path> <Container ID>:<Container path>
docker cp /Users/kanmeijie/Workspace/project/company/NalcoWaterExpert/api/src/main/resources/db/nalco_db.sql c4396fe6e95e:/var/opt/mssql/nalco_db.sql
# 进入容器,用命令行执行sql脚(er hub文档中说明image中有命令行工具,可以在containier中直接使用)
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Kmj123456" -i /var/opt/mssql/nalco_db.sql
# 至此安装结束,可以直接用Navicat或者idea连接(jdbc:sqlserver://localhost:1433;database=naclo_water
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值