Linux系统sql server数据库常用操作
广告:
数据库操作请参考官网:
https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-detach-db-transact-sql?view=sql-server-ver15
连接数据库:sqlcmd -S localhost -U SA -P '12345678'
1 获取数据库独占权限:
USE master;
ALTER DATABASE newspaper SET SINGLE_USER;
go (后面不能有分号)
2 分离数据库(备份)
下面的示例将 newspaper 数据库与设置为 true 的skipchecks分离。
EXEC sp_detach_db 'newspaper', 'true';
查询有哪些数据库:SELECT Name from sys.Databases
以下示例将分离 newspaper 数据库,并保留全文索引文件和全文索引的元数据。 此命令将运行 UPDATE STATISTICS,这是默认行为。
exec sp_detach_db @dbname='newspaper'
, @keepfulltextindexfile='true';
3 查看支持哪些排序规则
SELECT Name from sys.fn_helpcollations() where Name like '%Chinese%'
SELECT Name from sys.fn_helpcollations()
select SERVERPROPERTY('Collation') --查看默认排序规则 SQL_Latin1_General_CP1_CI_AS Chinese_PRC_CI_AS
select SERVERPROPERTY('SqlCharSetName')--查看排序使用字符集名称 iso_1
select COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') --查看默认编码格式 936
CI 指定不区分大小写,CS 指定区分大小写
中文:Chinese_PRC_CI_AS
4 更改排序规则:
sudo /opt/mssql/bin/mssql-conf set-collation
5. 更改单个数据库排序规则
解决方法:
a.设置数据库的 Ristrict Access 为 SINGLE_USER.
b.执行下列语句更改排序规则
USE master
GO
ALTER DATABASE newspaper COLLATE Chinese_PRC_CI_AS
ALTER DATABASE newspaper COLLATE SQL_Latin1_General_CP1_CI_AS
GO
c.上述命令执行成功之后设置Ristrict Access 为 MULTI_USER.
ALTER DATABASE newspaper set MULTI_USER
6. 还原数据库
附加数据库
CREATE DATABASE newspaper
ON (FILENAME = '/var/opt/mssql/data/newspaper.mdf'),
(FILENAME = '/var/opt/mssql/data/newspaper_log.ldf')
FOR ATTACH;
还原备份文件:
RESTORE DATABASE newspaper FROM DISK = '/var/opt/mssql/data/20191125905.bak' WITH RECOVERY;
7. 重启sql server服务
sudo systemctl restart mssql-server
8. 关闭客户反馈
sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
9. 将目录的所有者和组更改为 mssql 用户 :
sudo chown mssql /var/opt/mssql/data/master.mdf
sudo chgrp mssql /var/opt/mssql/data/master.mdf
sudo chown mssql /tmp/masterdatabasedir
sudo chgrp mssql /tmp/masterdatabasedir
10. 修改自增步长自长跳1000
修改/usr/lib/systemd/system/mssql-server.service 文件
ExecStart=/opt/mssql/bin/sqlservr -T272
systemctl daemon-reload
常见错误:
1. Error 5(Access is denied.) occurred while opening file '/var/opt/mssql/data/master.mdf' to obtain configuration information at startup. An invalid startup option might have caused the error. Verify your startup options, and correct or remove them if necessary.
更改文件夹权限
2 . Sql server用存储过程处理中文出现乱码 like N'%中文%' 或者like搜索没有结果:
存储过程里面改成: insert into test (a)values(N''+@title+'')
存储过程里面定义变量:
@strWhere nvarchar(4000) = '', -- 查询条件 (注意: 不要加 where)
declare @strSQL nvarchar(4000) -- 主语句
exec ( @strSQL) 主语句也要是nvarchar
程序里面改成:strWhere = strWhere + " and b.title like N'%" + keyword + "%' ";
广告: