SqlServer 單用戶解決方案 USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) - FROM master..sysprocesses WHERE dbid= ...
SqlServer 單用戶解決方案
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) - FROM master..sysprocesses WHERE dbid=DB_ID('資料庫名');
EXEC(@SQL); ALTER DATABASE 資料庫名 SET MULTI_USER;
SqlServer單表備份方案
BCP(Bulk Copy Program)是SQL Server提供的實用程式,可以用來將數據導出到文件或從文件導入到資料庫。以下是使用BCP備份單個表的步驟:
備份命令
bcp [資料庫名].[架構].[表名] out D:\xxx.bcp -T -c
恢覆命令:
bcp [資料庫名].[架構].[表名] in D:\xxx.bcp -T -c
SqlServer中json欄位的操作
在SQL Server中,您可以使用內置的JSON功能來操作JSON數據。SQL Server 2016及更高版本引入了對JSON的原生支持。以下是一些常見的JSON操作:
JSON數據的查詢:
- 使用
JSON_VALUE
函數來提取JSON對象中的特定屬性值。 - 使用
JSON_QUERY
函數來提取JSON對象或數組。 - 使用
JSON_UNQUOTE
函數來刪除JSON字元串的引號。
DECLARE @json NVARCHAR(MAX) = '{"name": "John", "age": 30}' SELECT JSON_VALUE(@json, '$.name') AS Name -- 輸出:Name SELECT JSON_QUERY(@json, '$.name') AS Name -- 輸出:"John" SELECT JSON_UNQUOTE(JSON_VALUE(@json, '$.name')) AS Name -- 輸出:John
Json數據替換
declare @ExtraProperties varchar(2000)='{"test":"FirstAndLastMarking"}' SET @ExtraProperties=REPLACE(@ExtraProperties, 'FirstAndLastMarking', 'BeginEndMark') select @ExtraProperties ; --輸出:'{"test":"BeginEndMark"}'
JSON數組的操作:
- 使用
OPENJSON
函數來解析JSON數組,以便查詢和操作數組中的元素。
DECLARE @jsonArray NVARCHAR(MAX) = '[{"name": "John", "age": 30}, {"name": "Jane", "age": 25}]' SELECT * FROM OPENJSON(@jsonArray) WITH (Name NVARCHAR(50), Age INT) -- 輸出:兩行結果,每行包含Name和Age列
JSON數據的修改:
- 使用
JSON_MODIFY
函數來更新JSON對象中的屬性值。
DECLARE @jsonObj NVARCHAR(MAX) = '{"name": "John", "age": 30}' SET @jsonObj = JSON_MODIFY(@jsonObj, '$.age', 31) -- 更新age屬性的值為31
JSON數據的構建:
- 使用
FOR JSON
子句將查詢結果轉換為JSON格式。
SELECT FirstName, LastName FROM Employees FOR JSON AUTO
JSON路徑表達式:
- 使用JSON路徑表達式來定位JSON數據中的特定元素。
DECLARE @json NVARCHAR(MAX) = '{"info": {"address": {"city": "New York"}}}' SELECT JSON_VALUE(@json, '$.info.address.city') AS City -- 輸出:New York
.Net 通過EFCore.Tools生成對應資料庫操作腳手架
//EfCore 6.0 Scaffold-DbContext "server=xxx.xxx.xxx.xx;database=xxx;user id=sa;password=pwd.; " Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -F -ContextDir DBContext -ContextNamespace DBContext -UseDatabaseNames -Context SQLServerContext //EfCore7.0 由於加入了證書驗證,如果沒有證書需要加上 Encrypt=False Scaffold-DbContext "server=xxx.xxx.xxx.xx;database=xxx;user id=sa;password=pwd.; Encrypt=False" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -F -ContextDir DBContext -ContextNamespace DBContext -UseDatabaseNames -Context SQLServerContext