Linux系統(tǒng)sql server數(shù)據(jù)庫(kù)常用操作
廣告:
數(shù)據(jù)庫(kù)操作請(qǐng)參考官網(wǎng):
https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-detach-db-transact-sql?view=sql-server-ver15
連接數(shù)據(jù)庫(kù):sqlcmd -S localhost -U SA -P '12345678'
1 獲取數(shù)據(jù)庫(kù)獨(dú)占權(quán)限:
USE master;
ALTER DATABASE newspaper SET SINGLE_USER;
go (后面不能有分號(hào))
2 分離數(shù)據(jù)庫(kù)(備份)
下面的示例將 newspaper 數(shù)據(jù)庫(kù)與設(shè)置為 true 的skipchecks分離。
EXEC sp_detach_db 'newspaper', 'true';
查詢有哪些數(shù)據(jù)庫(kù):SELECT Name from sys.Databases
以下示例將分離 newspaper 數(shù)據(jù)庫(kù),并保留全文索引文件和全文索引的元數(shù)據(jù)。 此命令將運(yùn)行 UPDATE STATISTICS,這是默認(rèn)行為。
exec sp_detach_db @dbname='newspaper'
, @keepfulltextindexfile='true';
3 查看支持哪些排序規(guī)則
SELECT Name from sys.fn_helpcollations() where Name like '%Chinese%'
SELECT Name from sys.fn_helpcollations()
select SERVERPROPERTY('Collation') --查看默認(rèn)排序規(guī)則 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') --查看默認(rèn)編碼格式 936
CI 指定不區(qū)分大小寫,CS 指定區(qū)分大小寫
中文:Chinese_PRC_CI_AS
4 更改排序規(guī)則:
sudo /opt/mssql/bin/mssql-conf set-collation
5. 更改單個(gè)數(shù)據(jù)庫(kù)排序規(guī)則
解決方法:
a.設(shè)置數(shù)據(jù)庫(kù)的 Ristrict Access 為 SINGLE_USER.
b.執(zhí)行下列語(yǔ)句更改排序規(guī)則
USE master
GO
ALTER DATABASE newspaper COLLATE Chinese_PRC_CI_AS
ALTER DATABASE newspaper COLLATE SQL_Latin1_General_CP1_CI_AS
GO
c.上述命令執(zhí)行成功之后設(shè)置Ristrict Access 為 MULTI_USER.
ALTER DATABASE newspaper set MULTI_USER
6. 還原數(shù)據(jù)庫(kù)
附加數(shù)據(jù)庫(kù)
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服務(wù)
sudo systemctl restart mssql-server
8. 關(guān)閉客戶反饋
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. 修改自增步長(zhǎng)自長(zhǎng)跳1000
修改/usr/lib/systemd/system/mssql-server.service 文件
ExecStart=/opt/mssql/bin/sqlservr -T272
systemctl daemon-reload
常見錯(cuò)誤:
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.
更改文件夾權(quán)限
2 . Sql server用存儲(chǔ)過程處理中文出現(xiàn)亂碼 like N'%中文%' 或者like搜索沒有結(jié)果:
存儲(chǔ)過程里面改成: insert into test (a)values(N''+@title+'')
存儲(chǔ)過程里面定義變量:
@strWhere nvarchar(4000) = '', -- 查詢條件 (注意: 不要加 where)
declare @strSQL nvarchar(4000) -- 主語(yǔ)句
exec ( @strSQL) 主語(yǔ)句也要是nvarchar
程序里面改成:strWhere = strWhere + " and b.title like N'%" + keyword + "%' ";
廣告: