在我使用 SQL Server 的这些年里,最常见的问题之一一直是“我们如何恢复已删除的记录?” 现在,从 SQL Server 2005 或更高版本恢复已删除的数据非常容易。...解释: 它是如何工作的?让我们一步一步地看一下。该过程需要七个简单的步骤: 步骤1: 我们需要从sql server中获取已删除的记录。...通过使用标准的 SQL Server 函数fn_blog,我们可以轻松获取所有事务日志(包括已删除的数据)。但是,我们只需要从事务日志中选定的已删除记录。...,但是是十六进制值,但是 SQL 将这些数据保留在特定的顺序中,以便我们可以轻松地恢复它。...删除的数据又回来了。 注:此数据仅供展示。它在您选择的表中不可用,但您可以将此数据插入到表中。
2 删除数据库快照 删除数据库快照的方法和删除数据库的方法完全相同,可以使用界面方式删除,也可以使用命令方式删除 例如: DROP DATABASE test1_s1; 3 SQL Server数据类型...字符型 SQL Server字符型包括两类:固定长度(char)或可变长度(varchar)字符数据类型。...(2)varchar[(n)]:变长字符数据类型,其中,n的规定与定长字符型char中的n完全相同,但这里n表示的是字符串可达到的最大长度。...:可表示从1900年1月1日到2079年6月6日的日期和时间,数据精确到分钟。...(2)sql_variant:一种存储SQL Server支持的各种数据类型(除text、ntext、image、timestamp和sql_variant外)值的数据类型。
精确数值型 精确数值型包括decimal 和 numeric两类,这两种数据类 型在SQL Server中,在功能上是完全等价的。...位型 SQL Server中的位(bit)型数据只存储0和1,长度为一个字节,相当于其它语言中的逻辑型数据。...另外,用户还可以自定义datetime2数据类型中微秒数的位数,例如datetime(2)表示小数位数为2。...其它数据类型 ● cursor 游标数据类型,用于创建游标变量或定义存储过程的输出参数 ● sql_variant 一种存储SQL Server支持的各种数据类型(除text、ntext、image、timestamp...● hierarchyid hierarchyid数据类型是SQL Server新增加的一种长度可变的系统数据类型,可使用 hierarchyid表示层次结构中置。
要支持早于 1840-12-31 的日期,必须在表中定义数据类型为 %Library.Date(MINVAL=-nnn) 的日期字段,其中 MINVAL 是从 1840-12-31 倒数的负天数(第 0...如果时间有效,它以 IRIS $HOROLOG 时间格式将其存储(逻辑模式),作为从午夜开始的整数秒计数,并带有指定的小数秒。...IRIS 显示模式和 ODBC 模式不显示小数秒;从这些显示格式中截断小数秒。...00234(前导零的$HOROLOG)返回“错误”示例以下动态 SQL 示例验证以 ODBC 格式(带或不带前导零)提供的日期并将它们存储为等效的 $HOROLOG 值 64701。...尾随零被截断。
SQL函数 LENGTH 返回字符串表达式中字符数的字符串函数。...字符串表达式可以是字符串(从中删除尾随空格)或数字( IRIS 将其转换为规范形式)。 请注意,LENGTH 可用作 ODBC 标量函数(使用花括号语法)或 SQL 通用函数。...所有 SQL 函数始终使用字段的内部存储值。 LENGTH 返回数字的规范形式的长度。规范形式的数字不包括前导零和尾随零、前导符号(单个减号除外)和尾随小数分隔符。...LENGTH 返回数字字符串的字符串长度。数字字符串不会转换为规范形式。 LENGTH 不排除字符串中的前导空格。可以使用 LTRIM 函数从字符串中删除前导空格。...示例 在以下示例中, IRIS 首先将每个数字转换为规范形式(删除前导零和尾随零,解析前导符号,并删除尾随小数分隔符)。
如果任何参数都不属于字符串数据类型,Microsoft SQL Server 会将其转换成字符串数据类型(如果可能)。...pattern match_expression 中的搜索模式,可以包含下列有效 SQL Server 通配符。 通配符 描述 示例 % 包含零个或更多字符的任意字符串。...escape_character 字符串数据类型分类中的所有数据类型的任何有效 SQL Server 表达式。escape_character 没有默认值,且必须仅包含一个字符。...如果查询中的比较要返回包含”abc”(abc 后没有空格)的所有行,则将返回以”abc”开始且具有零个或多个尾随空格的所有行。...使用 % 通配符 如果指定 LIKE ‘5%’,SQL Server 将搜索后面带有零个或多个任意字符的数字 5。
它不对数字进行四舍五入,也不添加填充零。在截断操作之前,将删除前导零和尾随零。如果小数位数为正数,则在小数点右侧的位数处执行截断。如果小数位数等于或大于小数位数,则不会发生截断或零填充。...如果小数位数等于或大于数字中的整数位数,则返回零。如果NUMERIC-EXPR为零(但表示为00.00、-0等)。TRUNCATE返回0(零),不带小数位数,无论小数位数是多少。...TRUNCATE 截断到指定数量的小数位数。如果截断导致尾随零,则保留这些尾随零。但是,如果 scale 大于 numeric-expr 规范形式的小数位数,则 TRUNCATE 不会填充零。...ROUND 舍入(或截断)到指定数量的小数位数,但其返回值始终是标准化的,删除尾随零。例如,ROUND(10.004,2) 返回 10,而不是 10.00。...DHC-APP>d ##class(PHA.TEST.SQLFunction).Truncate2()trunc654.321 1 Rows(s) Affected它返回 654.321( 在截断操作之前删除了尾随零
在 ROUND 循环或截断操作后删除尾随零。不返回前导零。如果 scale 为正数,则在小数点右侧的该位数处进行舍入。如果 scale 等于或大于小数位数,则不会发生舍入或零填充。...如果 scale 等于或大于舍入结果中的整数位数,则返回零。如果 numeric-expr 为零(但表示为:00.00、-0 等),ROUND将返回 0(零)且没有小数位,而不管比例值如何。...请注意,ROUND 返回值始终是标准化的,删除尾随零。...ROUND 舍入(或截断)到指定数量的小数位数,但其返回值始终是标准化的,删除尾随零。例如,ROUND(10.004,2) 返回 10,而不是 10.00。TRUNCATE 截断到指定数量的小数位数。...:SELECT {fn ROUND(654.98700,9)} AS Rounded654.987它返回 654.987( 在舍入操作之前删除了尾随零;没有发生舍入或零填充)。
SQL函数 UCASE将字符串中的所有小写字母转换为大写字母的大小写转换函数。...表达式可以是列名、字符串文字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHAR 或 VARCHAR)。描述UCASE 将小写字母转换为大写以进行显示。...它对非字母字符没有影响;它保留不变的数字、标点符号和前导或尾随空格。请注意,UCASE 可用作 ODBC 标量函数(使用花括号语法)或 SQL 通用函数。UCASE 不强制将数字解释为字符串。...SQL 从数字中删除前导零和尾随零。指定为字符串的数字保留前导零和尾随零。UCASE 不影响排序规则。 %SQLUPPER 函数是 SQL 中为不区分大小写的排序规则转换数据值的首选方法。...也可以使用 UPPER() 方法调用从 ObjectScript 调用此函数:$SYSTEM.SQL.UPPER(expression)示例以下示例以大写字母返回每个人的姓名:SELECT Name,{
SQL函数 TRIM字符串函数,它返回删除了指定的前导和/或尾随字符的字符串。...characters - 可选 — 一个字符串表达式,指定要从字符串表达式中删除的字符。指定字符的每个实例都从指定的末端被剥离,直到遇到此处未指定的字符。...无论要修剪的输入表达式的数据类型如何,TRIM 始终返回数据类型 VARCHAR。请注意,在将数字提供给 TRIM 或任何其他 SQL 函数之前,它们会自动从数字中去除前导零。...TRAILING - 关键字,指定要从 string-expression 的末尾删除 characters 中的字符。...示例以下示例使用 end_keyword 和 characters 默认值;它从“abc”中删除前导和尾随空格。选择项将“^”连接到字符串的两端以显示空白。
如果在 EF OnModelCreating 中配置了实体外键映射,也就是 SQL Server 中的 ForeignKey,那么我们在添加实体的时候,主实体的主键值会自动映射到子实体的外键值,并且这个操作在一个...,从数据库中删除指定对象 /// /// 对象的ID /// 执行成功返回... bool Delete(object id); /// /// 根据指定对象的ID,从数据库中删除指定对象(异步)...: "0001-01-01 到 9999-12-31"(公元元年 1 月 1 日到公元 9999 年 12 月 31 日) 我们可能就会得到下面的错误: 从 datetime2 数据类型到 datetime...这里的日期范围就是造成“从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值”这个错误的原因!!!
3.4.8.1 日期和时间数据类型 下表列出了 Transact-SQL 的日期和时间数据类型。...date_and_time 3.4.8.2 系统日期和时间值 所有系统日期和时间值均得自运行 SQL Server 实例的计算机的操作系统。...精确程度取决于运行 SQL Server 实例的计算机硬件和 Windows 版本。此 API 的精度固定为 100 纳秒。...例如,2004 年的第一周 (2004W01) 是指从 2003 年 12 月 29 日(星期一)到 2004 年 1 月 4 日(星期日)。一年中最大的周编号可能是 52 或 53。...SQL Server 使用科威特算法来支持阿拉伯样式(回历)的日期格式。 ?
SQL函数 UPPER将字符串表达式中的所有小写字母转换为大写字母的大小写转换函数。...大纲UPPER(expression)UPPER expression参数 expression - 字符串表达式,可以是列名、字符串文字或另一个函数的结果,其中基础数据类型可以表示为任何字符类型(例如...这是 LOWER 函数的反函数。 UPPER 保留不变的数字、标点符号和前导或尾随空格。UPPER 不强制将数字解释为字符串。 SQL 从数字中删除前导零和尾随零。...指定为字符串的数字保留前导零和尾随零。...也可以使用 UPPER() 方法调用从 ObjectScript 调用此函数:$SYSTEM.SQL.Functions.UPPER(expression)UPPER 是字母大小写转换的标准函数,而不是排序规则
工作中遇到一个问题,A表中字段(DateTime1)的数据类型为DateTime,新建了一张表B的SMALLDATETIME1字段的数据来自A表的DateTime1 但在将A表字段DateTime1导出到...Date and time types in SQL Server As of SQL Server 2008, we have several new types related to date...DROP PROCEDURE HTL_Convent_DateTime; --必须加上Go,否则下面创建存储过程时会出现错误"MSSQL 'CREATE/ALTER PROCEDURE' 必须是查询批次中的第一个语句...DATETIME AS BEGIN SELECT @date_time AS 'DateTime', CAST (@date_time AS DATETIME2) AS 'DateTime2' , CAST...datetimeoffset' SELECT CAST (@date_time AS SMALLDATETIME)AS 'SMALLDATETIME'; END GO View Code 1900-01-01之前的日期无法从
SQL Server发展至今,关于日期的格式的控制方法,有传统的方法,好比CONVERT(),也有比较便利的新方法,好比FORMAT();一样,关于日期的操做函数,也分为传统方法:DATEADD(...SQL Server提供更为灵活的转换函数FORMAT()。...,指的是DateTime2(n)、DateTimeOffset(n),Time(n)中的n值,表示以多少位小数表示1s。...() 函数,可以从3个正整数(year,month,day)中获取date 类型,只须要将day 参数设置1,就能获取月份的第一天的日期。...4,当前日期是周几 在SQL Server中,经过DataFirst选项设置一周的第一天,序数是从1到7,表示一周的7天。
SQL函数 RTRIM字符串函数,它返回一个删除了尾随空格的字符串。...描述RTRIM 从字符串表达式中去除尾随空格,并将字符串作为 VARCHAR 类型返回。如果 string-expression 为 NULL,则 RTRIM 返回 NULL。...如果 string-expression 是一个完全由空格组成的字符串,则 RTRIM 返回空字符串 ('')。无论要裁剪的输入表达式的数据类型是什么,RTRIM总是返回数据类型VARCHAR。...RTRIM 留下前导空白;要删除前导空格,请使用 LTRIM。要删除任何类型的前导和/或尾随字符,请使用 TRIM。要使用尾随空格或其他字符填充字符串,请使用 RPAD。...请注意,RTRIM 可用作 ODBC 标量函数(使用大括号语法)或 SQL 通用函数。示例以下嵌入式 SQL 示例从字符串中删除了五个尾随空格。
$LENGTH 返回 SMALLINT 数据类型。 描述 $LENGTH 返回指定字符串中的字符数或指定字符串中的子字符串数,具体取决于使用的参数。...(内部数据存储)值的长度,而不是显示值,无论 SelectMode 设置如何。...所有 SQL 函数始终使用字段的内部存储值。 $LENGTH 返回数字的规范形式的长度。规范形式的数字不包括前导零和尾随零、前导符号(单个减号除外)和尾随小数分隔符。...$LENGTH 返回数字字符串的字符串长度。数字字符串不会转换为规范形式。 $LENGTH 不排除字符串中的前导空格。可以使用 LTRIM 函数从字符串中删除前导空格。...$LENGTH('ABCDEG','$') AS SubStrings 1 在下面的嵌入式 SQL 示例中,第一个 $LENGTH 函数返回 11,即 a中的字符数(当然包括空格字符)。
SQL函数 %MINUS 将数字转换为规范整理格式,然后反转符号的整理函数。...大纲 %MINUS(expression) %MINUS expression 参数 expression - 表达式,可以是列名、数字或字符串文字、算术表达式或另一个函数的结果,其中基础数据类型可以表示为任何字符类型...%MINUS 和 %PLUS 在功能上是相同的,只是 %MINUS 反转了符号。它为解析为正数的任何数字添加减号前缀,并从解析为负数的任何数字中删除减号。零从不签名。...一个数字可以包含前导零和尾随零、多个前导加号和减号、一个小数点指示符 (.) 和 E 指数指示符。在规范形式中,执行所有算术运算,扩展指数,将符号解析为单个前导减号或无符号,并去除前导零和尾随零。...非数字字符串(任何以非数字字符开头的字符串)返回为 0。%MINUS 也将 NULL 作为 0 返回。 %MINUS 是一个 SQL 扩展,用于 SQL 查找查询。
隐式转换(Implicit conversion) ,这个情况每个程序员都或多或少的遇到过,这里我结合实际情况简单描述下常见的问题以及如何解决并阐述下原理。...出现隐式转换的情况和结果: 当SQL server遇到一个不匹配类型的表达式的时候,它有两种可能:1.使用隐式转换并能够执行;2.转换错误而导致执行失败。...SQL Server 对数据类型使用以下优先级顺序: 用户定义数据类型(最高) sql_varian...,描述了SQL server如何处理数据类型转换的所有可能性,意思就 是说并非所有的隐式转换都可行,有些转换是不被允许的。...由于隐式转换查询带来的性能问题甚至由于主键扫描带来的锁的问题,都需要开发人员了解这部分的原理,从根源上避免这类事件的发生。
SQL函数 TO_NUMBER将字符串表达式转换为 NUMERIC 数据类型的值的字符串函数。...TO_NUMBER 转换采用数字字符串并通过解析加号和减号、扩展指数符号(“E”或“e”)以及删除前导零将其转换为规范数字。 TO_NUMBER 在遇到非数字字符(例如字母或数字组分隔符)时停止转换。...额外的小数位数四舍五入到小数点后两位;尾随零被解析为两位小数。当通过 xDBC 使用 TO_NUMBER 时,它还返回类型为 NUMERIC,SCALE 为 2。...在 LOGICAL 模式或 ODBC 模式下,返回值是规范数字;没有对小数位施加比例,并且省略了尾随零。相关 SQL 函数 TO_NUMBER 将字符串转换为数字数据类型 NUMERIC。...示例以下两个示例显示 TO_NUMBER 如何将字符串转换为数字,然后将其作为具有适当 SCALE 的数据类型 NUMERIC 返回。
领取专属 10元无门槛券
手把手带您无忧上云