随笔分类 -  SQL Server

1 2 3 4 5 ··· 7 下一页
摘要:序列是一个对象,作用类似于数据库表的自增列性质,用于获取序列值。它的特点是: 1、不与特定表相关联,只能在INSERT语句通过调用NEXT VALUE FOR 函数来获取新的序列值 2、全局性 3、调用sp_sequence_get_range一次性获取一个序列范围(多个序列值) 4、可以升序或降序 阅读全文
posted @ 2022-06-08 21:42 Jerry_Chen 阅读(369) 评论(0) 推荐(0) 编辑
摘要:外部数据源(EXTERNAL DATASOURCE) 外部数据源是SQL Server 2022引入的新功能,为PolyBase 查询创建外部数据源,执行数据虚拟化和数据加载或者使用 BULK INSERT 或 OPENROWSET 大容量加载操作。 外部数据源可以是Oracle、Hadoop、Az 阅读全文
posted @ 2022-06-04 18:02 Jerry_Chen 阅读(1586) 评论(0) 推荐(0) 编辑
摘要:凭据定义了访问 SQL Server 外部资源所需的身份验证信息。 主要用处可以用于访问Windows资源、Azure BLOB或者PolyBase模拟器访问大数据Hadoop。系统凭据是自动创建的,并与特定端点关联, 系统凭据名以两个哈希符号 (##) 开头。 凭证又分为实例级别凭证和数据库级别凭 阅读全文
posted @ 2022-06-04 16:58 Jerry_Chen 阅读(666) 评论(0) 推荐(0) 编辑
摘要:端点定义了访问目标应用程序的端口和地址,定义好端口和地址后开始监听来自目标的消息通信。而目前在SQL Server下使用到端点的主要是Service Broker(消息队列)、数据库镜像(Mirroring)和高可用(AlwaysOn)。 参考: CREATE ENDPOINT (Transact- 阅读全文
posted @ 2022-06-04 16:21 Jerry_Chen 阅读(375) 评论(0) 推荐(0) 编辑
摘要:透明数据加密(TDE)加密 SQL Server的数据和日志文件,而且是页面级别的加密,数据库页在写入磁盘之前会进行加密,在读入内存时会进行解密。 TDE 不会增加已加密数据库的大小。 TDE 对数据和日志文件进行实时 I/O 加密和解密。 加密使用的是数据库加密密钥 (DEK)。 数据库启动记录存 阅读全文
posted @ 2022-06-04 15:15 Jerry_Chen 阅读(1088) 评论(0) 推荐(0) 编辑
摘要:什么是审核? SQL Server 2016开始支持Audit审核功能,且所有版本都支持。Audit收集单个服务器实例或数据库级操作和操作组以进行监视。 SQL Server Audit分为服务器实例级别和数据库级别,使用扩展事件来帮助创建审核,审核的事件写入事件日志或审核文件。 服务器审核对象 创 阅读全文
posted @ 2022-06-02 16:37 Jerry_Chen 阅读(714) 评论(0) 推荐(0) 编辑
摘要:SQL Server加密是指通过使用密钥或密码对数据进行模糊处理的过程,可以在SQL Server中对连接、数据和存储过程使用加密。SQL Server 2005之前是不支持数据库加密的,从2005开始可以对数据库的列进行数据加密。 我觉得要理解SQL Server数据加密应该从下面几个步骤去理解: 阅读全文
posted @ 2022-05-30 18:25 Jerry_Chen 阅读(2320) 评论(0) 推荐(0) 编辑
摘要:联接提示 可以在使用JOIN时要求最终执行计划使用指定的JOIN方式,支持LOOP\HASH\MERGE其一。这个我几乎工作中极少使用到。除非生产环境慢SQL的执行计划不合理,例如采用NESTED JOIN,但是LOOP的主表节点数据行数非常多,那是执行计划错误,通过更新统计数据STATISTICS 阅读全文
posted @ 2022-05-25 20:44 Jerry_Chen 阅读(175) 评论(0) 推荐(0) 编辑
摘要:OPENJSON 表值函数,解析JSON文本成集合。如果不指定WITH关键字,默认返回3个列,分别是key,value和type。参数2可以指定到具体的JSON节点。可以通过WITH关键字指定返回结果集合的列定义,WITH关键字即便是JOIN或者CROSS APPLY其他表的时候也是适用。 DECL 阅读全文
posted @ 2022-05-25 16:20 Jerry_Chen 阅读(87) 评论(0) 推荐(0) 编辑
摘要:COLUMNS_UPDATED和UPDATE 这两个函数都是用于表触发器里面判断字段是否被更新。区别是前者是位掩码来实现,比较绕,好处是可以检查多个字段。后者的用法就比较简单,就是把字段名称作为参数,但是只能单个字段。我觉得从代码可读性来说还是UPDATE比较好理解。 TRIGGER_NESTLEV 阅读全文
posted @ 2022-05-20 15:13 Jerry_Chen 阅读(331) 评论(0) 推荐(0) 编辑
摘要:$PARTITION 返回指定的分区函数的分区号 CREATE PARTITION FUNCTION RangePF1 ( INT ) AS RANGE FOR VALUES (10, 100, 1000) ; GO SELECT $PARTITION.RangePF1 (10) ; GO 结果 获 阅读全文
posted @ 2022-02-24 10:20 Jerry_Chen 阅读(83) 评论(0) 推荐(0) 编辑
摘要:SQL Server 2016以后基本没怎么关注过新版本的T-SQL语法更新,今天看了一下,发现了几个字符串相关的函数更新 CONCAT_WS CONCAT_WS是CONCAT的延伸版,以前如果把字段拼起来不是要自己去指定每个字段中间加分割分,例如CONCAT(字段1,',',字段2,',’,字段3 阅读全文
posted @ 2022-02-23 17:11 Jerry_Chen 阅读(216) 评论(0) 推荐(0) 编辑
摘要:安全相关的函数这些可能会有用: CERTENCODED \CERTPRIVATEKEY \LOGINPROPERTY \ORIGINAL_LOGIN \PWDCOMPARE \SESSION_USER \SESSIONPROPERTY \SUSER_ID \SUSER_NAME \SYSTEM_US 阅读全文
posted @ 2022-02-23 11:25 Jerry_Chen 阅读(132) 评论(0) 推荐(0) 编辑
摘要:@@PROCID 当前存储过程的object_id APP_NAME 当前会话的调用应用程序名称,像一般JDBC就是JDBC驱动的名称 COL_LENGTH 表字段类型的长度定义 COL_LENGTH (表名,字段名) COL_NAME COL_NAME ( table_id , column_id 阅读全文
posted @ 2022-02-22 15:19 Jerry_Chen 阅读(54) 评论(0) 推荐(0) 编辑
摘要:数据函数里面大部分函数其实日常写代码都不会用到,下面这些是我用过的数学运算函数 ABS和SIGN ABS是返回数值的绝对值,是英文absolute的缩写。而SIGN是返回数值是正负数的标志,1代表大于0的正数,-1代表小于0的负数,0就是数值等于0 FLOOR和CEILING 返回浮点型参数的最高整 阅读全文
posted @ 2022-02-22 14:51 Jerry_Chen 阅读(293) 评论(0) 推荐(0) 编辑
摘要:CHOOSE 如果列是由1开始的枚举值,可以用CHOOSE来转成对应的文字描述 GREATEST和LEAST 这两个是后面才有的,GREATEST可以输出多个列中最大的的列值,有点像列级别的MAX函数。而LEAST就是反过来,多列中的最小值。这里需要注意对NULL值的处理。 IIF 这个可以理解为对 阅读全文
posted @ 2022-02-22 11:26 Jerry_Chen 阅读(430) 评论(0) 推荐(0) 编辑
摘要:获取当前系统日期时间。 取决于:1、精度要求;2、UTC时间还是系统时间;3、要不要带时区 与 GETDATE 和 GETUTCDATE 比较而言,SYSDATETIME 和 SYSUTCDATETIME 的秒的小数部分精度更高。 SYSDATETIMEOFFSET 包含系统时区偏移量。 SYSDA 阅读全文
posted @ 2022-02-21 18:11 Jerry_Chen 阅读(203) 评论(0) 推荐(0) 编辑
摘要:DATALENGTH 返回传入数据真实数据占用子节(bytes)存储大小。举例,把 数值=1的整型传入会得到4,因为整型会占用4个子节长度的数据存储。而如果1是字符,返回1,如果1是unicode,返回2。讲到DATALENGTH,自然会联想到另外一个函数LEN。LEN只适用于字符,而DATALEN 阅读全文
posted @ 2022-02-21 17:09 Jerry_Chen 阅读(191) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页
点击右上角即可分享
微信分享提示