数据库
Hello World,
这个作者很懒,只留下一些什么…
展开
-
Dapper使用自定义表类型的参数
Dapper1.26及以上版本可以使用自定义类型的表值参数,方便将DataTable类型直接作为一个参数传递到数据库服务器上。两种方式的结果都是一样的。原创 2023-07-14 14:38:22 · 530 阅读 · 0 评论 -
MS SQL更新时变量、函数、子查询及字段计算顺序探索
SQL更新过程中变更、字段、函数、子查询优先级探索。原创 2022-08-24 11:30:18 · 328 阅读 · 0 评论 -
用友U8自动生成的临时表删除
用友U8在使用过程中会产生大量临时表,导致数据库中的多数空间都是临时数据,据说有补丁可以解决问题,但没有找到。根据分析,临时表的表名通过由Tmp_ 、UFTmpTable以及TMPUF_开头,而且表名都比较长,多数超过20个字符。以此为条件将表名查询出来,拼接SQL语句进行删除即可。DECLARE @name VARCHAR(100);DECLARE @sql VARCHAR(200), @i INT;SET @i = 1;DECLARE cur CURSOR FOR SELECT原创 2022-05-24 17:47:36 · 917 阅读 · 0 评论 -
SQLServer 在表设计器显示更多列
默认的设计器网格中只显示“列名”,“数据类型”,“允许NULL值”三列,但通常需要给字段添加备注,需要切换到底部去填写,十分不便。经查询资料得知,可以通过修改注册表的方式来实现显示更多列。注册表位置:计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio\版本号...\DataProject不同的版本不一样,例如SQL Server Management Studio 15.0.18390.0的,位置如下:原创 2022-05-20 09:09:20 · 512 阅读 · 2 评论 -
删除SSMS的历史登录记录
早期版本的历史记录存储在SqlStudio.bin文件中,新的版本修改了存储位置,一般在C:\Users\用户名\AppData\Roaming\Microsoft\SQL Server Management Studio\版本下面文件中记录了管理器的界面等配置信息,也包含了历史连接记录,格式如下:登记的记录都在ConnectionOptions节里,在红框里的Element,每个都对应一个服务器,如果相同的服务器有多个用户名登录过,则在里面的Item节里有多个用户的信息,可以选择性删除。.原创 2021-10-08 14:21:38 · 848 阅读 · 0 评论 -
U8登录“系统管理”提示调用远程组件失败问题解决
症状: U8使用正常,但是打开“系统管理”登录时提示“调用远程组件失败”,并且管理器左边也没有任何帐套显示。问题原因: 在独立的服务器上安装数据库服务,没有安装U8相关的程序。一些相关的配置不正确。比如存储过程xp_UFRegRead和xp_UFRegWrite都没有,还有一个程序集U8FileServerExtendProc也没有。解决方案: 创建xp_UFRegRead,按照官方的代码,需要读取注册表内容,但由于没有安装U8程序,所以注册表是...原创 2021-07-02 09:33:58 · 1406 阅读 · 0 评论 -
使用Values进行列转行并对数据类型转换
SELECT tt.valFROM (SELECT 10 AS A, 'SomeThing' AS B UNION ALL SELECT 30, 'Other') t OUTER APPLY (VALUES (CAST(t.A AS VARCHAR(10))), (t.B)) tt(val);以上代码将表格中的A、B两列转成两行显示,对INT类型转换为其他类型。相同数据类型的列转行也可以用UNPIVOT:SELECT up.val, up.xFROM..原创 2021-03-03 09:05:17 · 291 阅读 · 0 评论 -
SQL获取多列中的最大/最小值,对一行中的数据进行聚合运算的方法
--获取多列中的最大/最小值,对一行中的数据进行聚合运算的方法DECLARE @data TABLE( Student NVARCHAR(20) NOT NULL, Chinese INT NOT NULL, Math INT NOT NULL, English INT NOT NULL);INSERT @data ( Student, Chinese, Math, English.原创 2020-10-29 08:58:40 · 2184 阅读 · 0 评论 -
SQL LAST_VALUE使用问题记录
自SQL Server2012版本开始提供的分析函数LAST_VALUE,用于返回序列中最后一个值。参数:LAST_VALUE ( [scalar_expression ) OVER ( [ partition_by_clause ] order_by_clause rows_range_clause ) 在使用时发现取的值不是分组中最后一个的值,因为默认是取到分组(可选)第一项到当...原创 2018-04-07 17:17:11 · 9722 阅读 · 0 评论 -
用友U8获取指定用户拥有指定权限的账套
DECLARE @userId NVARCHAR(20); --用户登录账号SET @userId = 'a';DECLARE @cAuth_Id NVARCHAR(100) --权限IDSET @cAuth_Id='ST011903'SELECT a.cAcc_Id + ' ' + a.cAcc_Name AS cAcc_Name , db.cDatabase原创 2017-05-28 16:18:05 · 4165 阅读 · 0 评论 -
MS SQL Server结果生成HTML表格并发送邮件
配置邮件服务器在SQL管理器中找到“管理”,在“数据库邮件”上面右键,选择“配置数据库邮件”,如果没有开启,系统会提示开启。进去之后配置好账户和配置文件生成HTML表格使用SQL的XML功能生成表格,需要格式的话可以使用Style来设置,示例: DECLARE @emailBody NVARCHAR(原创 2017-06-27 11:17:29 · 5710 阅读 · 0 评论 -
SQL Server将表数据移动到新的文件/文件组
今天想要修改表的文件组/文件属性,百度了一下,说是通过SQL修改索引的方式来达成。语句如下:ALTER TABLE dbo.tablexx DROP CONSTRAINT PK_tablexx WITH (MOVE TO [newfilegroups] , ONLINE=ON);试了下,把索引给弄过去了,但文件内容还没过去:后来发现在表设计界面直接修改就可以了,操作如下:原创 2017-05-18 16:27:19 · 6212 阅读 · 0 评论 -
用友U8手工清除工作流资料
DECLARE @deleteBefore DATETIME;SET @deleteBefore = '2017-1-1';--工作流日志,这个表有可能很大,记录了工作流计算的过程,如果工作流没出错的话其实没啥用,直接清空即可DELETE FROM WF_CurrentLogWHERE CreateTime < @deleteBefore;--流程实例锁定表DELETE原创 2017-05-28 16:32:42 · 3208 阅读 · 0 评论 -
用友U8手工删除账套的SQL
DECLARE @AccID CHAR(3);SET @AccID = '999';--在此修改账套号USE UFSystem;--备份日志DELETE FROM UA_BackupLogWHERE cAcc_Id = @AccID;--备份计划子表DELETE FROM UA_BackupPlansWHERE cAcc_Id = @AccID;--备份计划原创 2017-05-28 16:25:24 · 4768 阅读 · 1 评论 -
取得树形结构并对树按名称排序
WITH t AS ( SELECT ID , department , Leader , isProductionDepartment , pid ,原创 2014-11-22 15:53:55 · 1964 阅读 · 0 评论 -
Access无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开
使用SQL Server导入有密码的Access数据库内容,连接时出现错误提示:Access无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开参考百度信息,可以点上图中的高级,在新弹出的对话框中设置数据库密码:设置完成后记得将图1中的密码清除,就OK了。原创 2015-07-03 15:02:58 · 4751 阅读 · 4 评论 -
MSSQL:查看所有触发器信息的命令
转自:http://www.2cto.com/database/201307/228708.html编写程序,有时或为了偷懒,或为更简单地实现所需功能,使用了触发器。这可是把双刃剑,用得不好,程序出现一些莫名其妙的错误,排查到最后,可能就是触发器造成的。 基本原则是能不用则不用,另一方面,所谓存在即合理,既然存在,总会有使用它的场景。用到了,怎么去管理去监控?一转载 2015-12-14 11:59:56 · 2801 阅读 · 0 评论 -
SQL Server 2008作业失败:无法确定所有者是否有服务器访问权限
转自:http://www.mzwu.com/article.asp?id=3592下午准备将服务器数据导一份到本地,连上服务器找数据库备份文件发现最后一次备份是7月1日,竟然十几天没生成新备份,查看作业历史记录,错误信息如下:引用内容该作业失败。 无法确定所有者 WIN-3TH1KNIT12D\Administrator (拥有作业 Database_Bac转载 2015-12-14 11:37:26 · 12426 阅读 · 0 评论 -
备份数据库存储过程
--备份数据库 CREATE PROC [dbo].[P_DBBACKUP2Path] ( @dbPath NVARCHAR(200) , --备份文件存放路径,最后带/ @DbName VARCHAR(50) --要备份的数据库名称 )AS SELECT @dbPath = @dbPath + @DbName + '_' + CONVE原创 2015-12-14 10:51:09 · 3750 阅读 · 0 评论 -
添加或者更新表说明
--添加或者更新表说明ALTER PROC [dbo].[AddOrUpdateTableComment] ( @tableName sysname , @comment NVARCHAR(50) )AS ; IF EXISTS ( SELECT * FROM syscolumns a原创 2016-03-28 12:25:45 · 575 阅读 · 0 评论 -
添加或者更新字段说明
--添加或者更新字段说明ALTER PROC [dbo].[AddOrUpdateColnumComment] ( @tableName sysname , @colnumName sysname , @comment NVARCHAR(50) )AS ; IF EXISTS ( SELECT *原创 2016-03-28 12:25:01 · 731 阅读 · 0 评论 -
该伙伴事务管理器已经禁止了它对远程/网络事务的支持
今天写了个触发器在两台服务器之间同步更新数据,结果更新时提示”该伙伴事务管理器已经禁止了它对远程/网络事务的支持“。经过百度在http://www.cnblogs.com/ycsfwhh/archive/2010/12/15/1906507.html找到处理方案,补充图片重新编辑如下:1.双方启动MSDTC服务MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统转载 2016-05-31 10:09:26 · 10880 阅读 · 0 评论 -
测试连接失败,因为初始化提供程序时发生错误,[DBNMPNTW] ConnectionOpen (CreateFile())
此主题相关图片如下:错误.jpg今天发布的程序,在其它电脑上运行没问题,就是其中一台电脑上运程报这个错。系统是Win7的查了好久,最后解决方法如下:在报错的电脑上,单击“开始”,然后在“运行”上输入 cliconfg.exe回车,选择“别名”点“添加”输入服务器别名、连接参数和网络库,注意网络库选“TCP/IP”然后,确定、确定就可以了,具体如下图:转载 2016-08-16 12:20:35 · 20531 阅读 · 0 评论 -
MS SQL计算最大公约数和最小公倍数函数
/*求两个数的最大公约数*/CREATE FUNCTION f_GetGys ( @num1 BIGINT , @num2 BIGINT )RETURNS BIGINTAS BEGIN DECLARE @m BIGINT; DECLARE @i BIGINT; IF ( @num1 < @num转载 2016-09-21 09:46:00 · 2732 阅读 · 0 评论 -
内部查询处理器错误:查询处理器无法生成查询计划
今天系统出现一个错误,提示“内部查询处理器错误:查询处理器无法生成查询计划”,来源于一条更新语句。检查后发现更新时主键既是更新条件同时也列入到更新清单中了,删除后解决。但不明白之前更新未出现此提示,为啥?原创 2017-03-25 09:05:37 · 3278 阅读 · 0 评论 -
分布式事务TransactionScope
分布式事务TransactionScope以下是分布式事务的所有情况的例子了,包含了事务套事务,事务套存储过程事务,经过测试,TransactionScope对于分布式事务的各种情况支持的很好。使用分布式事务注意如下几点:1:确保参与事务的machine开启了分布式事务支持;2:如果machine开启了防火墙,需要设置msdtc进程为例外;3:参与事务的mach转载 2014-06-26 11:59:00 · 1468 阅读 · 0 评论