SQLServer 常用命令记录,持续更新.....(有问题可以留言)

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

 

posted @ 2023-09-07 11:06  高宏顺  阅读(258)  评论(0编辑  收藏  举报