初次使用SQL Server 遇到了不少坑,特此将其应对策略总结如下:
1.下载sqlServer数据库;
坑之一:不是开源的,sqlServer属于mircoSoft的收费产品。
应对办法:docker镜像是免费的,使用docker版本。
坑之二:内存占用大,运行sqlServer至少需要2G的内存。
应对策略:使用公司的或已有的服务端。
2.下载sqlServer客户端;
坑之三:没有正式指定的客户端,网上相关的资源也很少。
应对策略:使用Navicat,但,特别的卡。
坑之四:需要sqlServer驱动,使用navicat连接的时候,报需要装驱动。
应对策略:navicat 目录下就有驱动(如E:\Navicat Premium 12\sqlncli_x64.msi 或者 sqlncli.msi),点击安装即可。
3.导入第三方的.sql文件;
坑之五:导入时,运行sql文件报错——找不到xxx123文件组。
应对策略:添加文件组。
4.向数据库中添加数据;
坑之六:没有配置分组文件,并添加到对应分组,导致表,作死也加不进数据;
应对策略:进入sqlServer容器,创建’/var/opt/mssql/data/xvxv.ndf文件;然后运行下面的sql,把文件添加到分组。
ALTER DATABASE NCDB
ADD FILE (NAME='NNC_DATA01', FILENAME='/var/opt/mssql/data/xvxv.ndf',SIZE=3MB,MAXSIZE=100MB,FILEGROWTH=5MB)
TO FILEGROUP [xxx123]
添加分组文件,并配置到分组后,就可以添加数据了。
5.模糊查询中文
使用mysql的语法查不出想要的数据
SELECT * FROM bd_material WHERE CONCAT(name,pk_group) LIKE '%中通%'; // 查不出数据
SELECT * FROM bd_material WHERE CONCAT(name,pk_group) LIKE N'%中通%';// ok,没有问题
原因:sqlserver中有nchar,nvarchar这两种数据类型,增删改查都需要在字段值的前面添加N。
其他的都是小问题,如字段类型或长度不匹配等,注意查看报错信息。