
SQL SERVER
YanJinrong
这个作者很懒,什么都没留下…
展开
-
SQL数值转字符串保留指定小数位
代码】SQL数值转字符串保留指定小数位。转载 2022-08-10 12:34:23 · 1220 阅读 · 0 评论 -
WITH (NOLOCK)
加了WITH (NOLOCK)即告诉SQL Server,我们的这段SELECT指令无需去考虑目前table的transaction lock状态,因此效能上会有明显的提升,而且数据库系统的Lock现象会有明显的减少(包含Dead Lock)。除了简单的SELECT之外,有JOIN的SELECT语法也是可以使用的。脏读: 一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后,第一个用户放弃修改,数据回到修改之前,这两个不同的结果就是脏读。指定由查询优化器使用的表扫描、一或多个索引,.转载 2022-08-08 05:52:18 · 4534 阅读 · 0 评论 -
将 uniqueidentifier 值转换为 char 时结果空间不足
提示“将 uniqueidentifier 值转换为 char 时结果空间不足”如果在使用 CAST 和 CONVERT 函数时未指定 n,则默认长度为 30。经过排查发现,如果未在数据定义或变量声明语句中指定 n,则默认长度为 1。原创 2022-08-08 05:50:32 · 1323 阅读 · 0 评论 -
SQL Server Identity自增列设置为重新从1开始
SQL Server 数据库原有ID字段,是自增列的,后来把数据全删除后,ID是接着以前的继续增长的,想让ID自增列重新从1开始。原创 2022-08-07 05:21:19 · 1349 阅读 · 0 评论 -
SQL Server修改表结构时,不允许保存更改,阻止保存要求重新创建表的更改
在SQL Server中,修改表结构保存时提示“不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’选项”。解决方法:点击“工具--选项--设计器--表设计器和数据库设计器”,关闭“阻止保存要求重新创建表的更改”(取消勾选),不同版本SQL Server的界面可能会稍有不同。...原创 2022-08-07 05:13:52 · 5012 阅读 · 1 评论 -
SQL Server 2012/2016/2017 新增函数
/************************************************************** SQL Server 2012 新增的函数 ***************************************************************/ -- CONCAT ( string_value1, string_value2 [, string_valueN ] ) #字符串相连 SELECT CONCAT('A','BB',.转载 2022-05-06 10:11:03 · 534 阅读 · 0 评论 -
SQL Server 2016 OPENJSON忽略大小写
使用WITH子句OPENJSON将输入JSON表达式中的键与该WITH子句中的列名进行匹配,是区分大小写,可以使用条件聚合以忽略大小写:DECLARE @JSON varchar(max) = '[ {"dDate":"2022-05-01","cVouchID":"SS-220500001"}, {"ddate":"2022-05-04","cvouchid":"SS-220500002"}]'--使用WITH子句:Select JsonTable.* From OPENJS...原创 2022-05-06 09:43:51 · 927 阅读 · 0 评论 -
对登录名进行用户映射时,提示“用户、组或角色在当前数据库中已存在”问题
SQL Server迁移服务器或恢复备份后,需要给登录名关联数据库用户时,发生错误:“错误15023:当前数据库中已存在用户或角色”或“用户、组或角色 在当前数据库中已存在”, 解决办法:使用脚本将登录名与用户名进行关联 Use [数据库名] GO sp_change_users_login 'update_one', '用户名', '登录名' GO update_one是存储过程的参数,表示只处理一个用户。每个有关联的数据库,都需要执行。...原创 2022-01-01 13:20:33 · 1356 阅读 · 0 评论 -
SQL Server附加数据库失败:无法打开物理文件,操作系统错误5:拒绝访问”解决方法
在Windows2008/Win7以上操作系统附加时,会出现此错误,这是由于Windows的文件访问权限问题引起的,解决方法有两种: 一、设置当前操作系统用户对数据库文件所在的文件夹具有完全控制权限后再附加,该方法需要对每个数据库文件夹进行授权。 二、修改MSSQLSERVER服务登录身份为本地系统帐户,然后重启SQL SERVER服务即可。...原创 2022-01-01 13:08:43 · 9037 阅读 · 0 评论 -
SQL Server的时间戳(timestamp)
MSSQL Server的timestamp是顺序递增的一个整数,在整个数据库范围内不会重复且不受事务回滚影响。它与日期时间无关,与其他数据库的时间戳概念不同,所以呢,就别指望通过它来记录数据变更时间了,还是自己动手、丰衣足食靠谱点。...原创 2020-06-28 09:07:56 · 1674 阅读 · 0 评论 -
SQLServer判断某个字段是否存在
IF NOT EXISTS(SELECT * FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'tablename') AND name = 'colname')原创 2020-06-28 09:07:47 · 2676 阅读 · 0 评论 -
SQLServer统计数据库中各表的记录数
Select o.name TableName,i.rows RecordCount From sysobjects o,sysindexes i Where o.id=i.id and o.Xtype='U' and i.indid<2 Order byo.Name原创 2020-06-28 09:07:31 · 818 阅读 · 0 评论 -
64位环境中使用SQL查询excel报错:该访问接口无法用于分布式查询
用OpenDataSource和OpenRowSet查询EXCEL时,报错: 消息7308,级别16,状态1,第1 行 因为OLE DB 访问接口'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。 解决办法是下载并安装Office System Driver Beta 64位驱动(如果已经安装32位的OFFICE,则必须先卸载,再安装64位的MADE2010)。...原创 2020-06-28 09:08:08 · 899 阅读 · 0 评论 -
SQL2000“SQLDMO还未注册,请重新运行SQL SERVER安装程序,或者与管理员联系”
SQL2000企业管理器启动时报错,弹出 “SQLDMO还未注册,请重新运行SQL SERVER安装程序,或者与管理员联系”。处理:“开始”——“运行”:RegSvr32 sqldmo.dll原创 2020-06-26 12:44:41 · 429 阅读 · 0 评论 -
SQL查询在另一表中不存在的值
方法一:使用 not in ,容易理解,效率低 ~执行时间为:1.395秒~SELECT COUNT(1) FROM ecs_goods WHERE ecs_goods.goods_id NOT IN (SELECT ecs_member_price.goods_id FROM ecs_member_price);方法二:使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录 ~执行时间:0.739秒~SELECT COUN..原创 2020-06-26 12:28:27 · 1206 阅读 · 0 评论 -
AUTO INCREMENT 字段【MS SQL 使用 IDENTITY 关键字来执行 auto-increment 任务】 .
[+]AUTO INCREMENT 字段用于 MySQL 的语法用于 SQL Server 的语法用于 Access 的语法用于 Oracle 的语法Auto-increment 会在新记录插入表中时生成一个唯一的数字。AUTO INCREMENT 字段我们通常希望在每次插入新记录时,自动地创建主键字段的值。我们可以在表中创建一个 aut转载 2013-12-09 02:07:30 · 1202 阅读 · 0 评论 -
Sql Server 2000 排序规则修改
排序规则:有时会涉及到数据库数据的格式,如何日期格式,数字格式等。典型的会引起, smalldatetime 数据溢出等问题。 -- 搜索出所有的 排序规则方式SELECT * FROM ::fn_helpcollations() -- 更改一个数据库的排序规则Alter database 数据库 collate 排序规格 --- 修改整个数据库的排转载 2013-12-28 18:33:31 · 987 阅读 · 0 评论 -
删除mssql企业管理器中的服务器注册名
之前为了方便操作就在Sql Server的企业管理器里注册了远程服务器,但是前一段时间在远程服务器上修改了该数据库的密码,每次点击该注册服务器系统要等很长时间,象死机一样;修改连接属性也修改不了,点击后也没有反应,于是就想删除重新注册,既然无法在管理器里删除,就想从注册表里删除,找了好久终于找到了,对应的sql server的注册服务器在:HKEY_CURRENT_USER/Software/转载 2013-12-17 04:50:06 · 674 阅读 · 0 评论 -
SQL Server中可不可以指定某些语句不记录到日志
来源:黑客基地 编辑:古典辣M° 我的问题:SQL Server中可不可以指定某一些语句不记录到日志。比如我在清理某个日志表的时候,因为不是全部删除,只是删除某个时间段之前。比如以下SQLDelete Table1 where Time 由于删除量很大,记录日志的话,删除后,产生3、4G的日志很正常。删除完了后,又要清理日志,非常麻烦,尤其是硬盘空转载 2014-08-06 13:07:14 · 978 阅读 · 0 评论 -
SQL Server 中 RAISERROR 的用法
raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升raiserror 的作用: raiserror 是用于抛出一个错误。[ 以下资料来源于sql server 2005的帮助 ] 其语法如下:RAISERROR ( { msg_id | msg_str | @local_variable }转载 2014-08-06 13:12:26 · 641 阅读 · 0 评论 -
SQL的decimal、float、double类型的区别
三者的区别介绍float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位) 按存储的范围进行排序转载 2014-11-12 08:06:14 · 10324 阅读 · 0 评论 -
ADO与SQL触发器报错的问题
如果数据表使用级联更新的触发器,且记录影响到多行时,在前台修记录录有时会报“无法为更新定位行,一些值可能已在最后一次读取后已更改。”的错误,如果是在触发器后才产生的此错误,则在触发器里加上SET NOCOUNT ON即可。原因估计是,更新多行结果返回更新多行信息不是一行,而ado引擎便判断错误。所以干脆不允许出现任何返回。建议写触发器时都加上这句,少好多麻烦。例如:CREATE原创 2015-02-14 11:22:56 · 716 阅读 · 0 评论 -
使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007
使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007测试文件:D:/97-2003.xls和D:/2007.xlsx,两个文件的内容是一模一样的。测试环境:SQL Server 2000 / 2005。接口类型语法一览注册表设置单一数据类型列的类型解析混合数据类型列的自然解析混合数据类型列的强制解析——IMEX=1如何解决 NU转载 2015-07-18 22:30:13 · 431 阅读 · 0 评论 -
重新生成和重新组织索引区别
重新生成和重新组织索引区别 1.重新生成索引: ALTER INDEX 索引名 on 表名 REBUILD 重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。2.重新组织索引:转载 2015-11-18 00:34:58 · 13411 阅读 · 0 评论 -
SQL Server中临时表与表变量的区别
什么情况下使用表变量?什么情况下使用临时表?表变量: DECLARE @tb table(id int identity(1,1), name varchar(100)) INSERT @tb SELECT id, nameFROM mytable WHERE name like ‘zhang%’ 临时表: SELECT na转载 2013-07-07 15:42:22 · 735 阅读 · 0 评论