
数据库
文章平均质量分 76
zy0421911
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
.net 调用SQL数据库存储过程 并取得返回值
SqlParameter returnValue= new SqlParameter("@ReturnValue",SqlDbType.Decimal,4,ParameterDirection.Output,true,8,2,null, DataRowVersion.Default,null);//在此处设置返回值的类型,长度,精确度 ,是否为空等(构造函数最长的重载) using (SqlCo原创 2016-04-10 13:14:38 · 680 阅读 · 0 评论 -
SqlServer 行转列函数pivot
Title chooseText第一题 A 第一题答案A第一题 B 第一题答案B第一题 C 第一题答案C第一题 D 第一题答案D第二题 A 第二题答案A第二题 B 第二题答案B第二题 C 第二题答案C第二题 D原创 2017-02-21 21:35:33 · 2156 阅读 · 0 评论 -
SQL SERVER表值函数
有些情况可能用下表值函数,表值函数主要用于数据计算出来返回结果集,可以带参数(和视图的一个大的区别),如果函数中没有过多的逻辑处理,如变量的定义,判断等,表值函数返回结果集可以简单向下面这么写:CREATE FUNCTION Fun_GetReportNews(@type varchar(10))RETURNS TABLEAS RETURN( SELECT T转载 2017-04-05 11:00:47 · 2946 阅读 · 0 评论 -
SQL Cursor(游标) 基本用法
由于这个游标 执行一下就相当于SELECT一下 其效率不敢恭维也没做深入研究。 代码 1 table1结构如下 2 id int 3 name varchar(50) 4 5 declare @id int 6 declare @name varchar(50) 7 declare cursor1 cursor for --转载 2017-04-05 11:02:17 · 1829 阅读 · 0 评论 -
PLSQL 使用技巧
工欲善其事,必先利其器,最近研究了一下各种编程工具的使用,发掘了不少新功能,能够大大提升我们日常的工作效率,下面是转载的一篇PLSQL使用技巧,个人感觉很有用,分享一下。1、PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码; 设置方法:PL/SQL D转载 2017-05-27 16:17:41 · 649 阅读 · 0 评论 -
.net 通过ODP.NET Managed 连接Oracle数据库
1、 Oralce官网 下载 安装 ODTforVS2015_121025 重启VS2、项目引用 Oracle.ManagedDataAccess.dll3、数据库连接字符串: user id=xxxx;password=xxxx;data source=192.168.0.xxx:1521/orcl(数据库名)4、使用方法: OracleConnection con =原创 2017-03-03 15:22:46 · 6444 阅读 · 1 评论 -
Oracle自动生成数据字典的SQL语句
读取Oracle表字段名字,类型(含长度),注释等信息的SQL语句:select col.COLUMN_NAME, com.Comments, col.DATA_TYPE, col.DATA_LENGTHfrom sys.all_tab_columns col, sys.all_col_comments comwhere col.owner = '用户名'and col转载 2017-06-26 09:32:15 · 2359 阅读 · 0 评论 -
sql 语句注意点
1 、 declare @OverTimeType uniqueidentifier; --定义GUID类型变量 @OverTimeType= isnull(cast(OverTimeType as uniqueidentifier),NULL) --给变量赋值 此时如果最后的NULL 写成‘’ ,就会在 OverTimeType 为空的情况下报错,因为空字符串原创 2016-09-03 16:21:11 · 909 阅读 · 0 评论 -
SqlServer生成数据字典语句
SELECT表名=case when a.colorder=1 then d.name else '' end,表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,字段序号=a.colorder,字段名=a.name,标识=case when COLUMNPROPERTY( a.id,转载 2018-01-22 11:43:55 · 1510 阅读 · 0 评论 -
SQLServer 表名 字段名 小写转大写
SELECT 'EXEC sp_rename ''' + TABLE_SCHEMA + '.' + TABLE_NAME + '.' +COLUMN_NAME + ''', ''' +UPPER(COLUMN_NAME) + ''',''COLUMN'''FROM INFORMATION_SCHEMA.COLUMNSWHERE OBJECTPROPERTY(OBJECT_ID('[转载 2018-01-31 09:25:25 · 2247 阅读 · 0 评论 -
Oracle 父子递归
SELECT *FROM TableASTART WITH ID=1CONNECT BY PRIOR SID=ID转载 2018-01-08 11:05:51 · 492 阅读 · 0 评论 -
sql中的 开窗函数over() 聚合函数 排名函数
开窗函数与聚合函数一样,都是对行的集合组进行聚合计算。它用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。反正我理解这个函数已经使用好子查询或者是其它方式求得聚合列的值给我合并。以书中的例子一步一步来介绍,假设要计算所有人员的总数,我们可以执行下面的SQL语句:SELE...原创 2018-09-19 11:20:19 · 3088 阅读 · 1 评论 -
sqlserver 中批量删除\r\n 换行符
从Excel中向sqlserver 中批量粘贴数据时 可能会粘贴进去换行符 \r\n 这时候在查询时候是看不见的 只有把该字段赋值到‘’中才能发现换行。批量替换语句:update [表名]set [字段名]=REPLACE([字段名], CHAR(13)+CHAR(10), '') 其中:--char(9) 水平制表符--char(10)换行键--原创 2016-12-30 17:23:18 · 9987 阅读 · 0 评论 -
sql语句删除数据库中所有表
//删除外键约束DECLARE c1 cursor forselect 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; 'from sysobjectswhere xtype = 'F'open c1declare @c1 varchar(8000)fetch next原创 2016-12-19 15:12:13 · 1561 阅读 · 0 评论 -
存储过程示例
Create proc CreateOrder@orderId nvarchar(50),--订单号@userId int,--用户编号@address nvarchar(255),--收货人地址@totalMoney money output --总金额asbegin declare @error int set @error=0--计算总金额 begin transa原创 2016-04-10 13:25:10 · 282 阅读 · 0 评论 -
SqlServer手动添加记录ID增量变化的问题
偶然机会发现当手动向SqlServer(2008)中的某个表添加数据的时候,自动生成的ID并不是连贯的(增量已经设置为1),而通过Sql语句或者直接复制粘贴添加的列却是连贯的,具体现象如图: 总结原因:该表中有非空的列,而且手动录入的时候如果有要求非空的列没有填值,这时候误操作点了其他的记录,这时候系统会尝试自动提交 ,并提示某一列不能为空, 这个尝试提交的操作 会生成并占用一个ID原创 2016-04-22 10:24:55 · 1078 阅读 · 0 评论 -
复杂sql语句
select Name,leaveTime,shouldLeave,(case when leaveTime is null then '未休假' when shouldLeave>leaveTime then '提前休假' when shouldLeave (select Name,t1.leaveTime , dateadd(month,6原创 2016-06-30 22:56:02 · 465 阅读 · 0 评论 -
关于还原数据库,数据库报红线解决
还原或删除sql server 2008数据库时,经常出现:“因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案如下ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE用完之后再ALTER database [ datebase] set onli转载 2016-06-23 17:22:55 · 629 阅读 · 0 评论 -
事务(TransactionScope)、分布式事务(DTC) 的相关特点和用法
事务特点: 只需要把需要事务包裹的逻辑块写在using (TransactionScope ts = new TransactionScope())中。除非显示调用ts.Complete()方法。否则,系统不会自动提交这个事务。如果在代码运行退出这个block后,还未调用Complete(),那么事务自动回滚了。在事务块中,操作数据库方法内部都没有用到任何事务类。(都是自动生成的事务操作)转载 2016-08-16 21:25:09 · 4504 阅读 · 0 评论 -
关于触发器的新建、禁用、启用、特点
有的时候数据库新建触发器的选项是灰色的 或者触发器启用 停用按钮没有出现,就要通过语句完成相应操作1、创建触发器create trigger [触发器名]on [表名]after insert as begin内容end2、禁用、启用触发器ALTER TABLE [表名] DISABLE TRIGGER [触发器名]ALTER TABLE [表名]原创 2016-07-18 13:48:42 · 1450 阅读 · 0 评论 -
sqlserver数据库log文件过大 解决办法
1、 一般是由于日志过大 日志模式设置为 full 此时改成simple 即可 相关命令: 查询状态 sp_helpdb '数据库名' 如果是full模式改成 simple模式 alter database 数据库名 set recovery simple原创 2016-09-05 14:47:42 · 14674 阅读 · 0 评论 -
树型结构的sql查询
1、从子节点向根节点查询 (可能还有更好的方法)create table #TempTB ([Parent_ID] int null, [ID] int null) --创建临时表 存储查询结果insert into #TempTB([Parent_ID],[ID]) select pid,idfrom [dbo].[area]whe原创 2016-10-14 11:11:54 · 1617 阅读 · 0 评论 -
关于LINQ 和lambda表达式
一LINQ : LINQ表达式的from行可以嵌套 实现表多层关联一层层向下找的目的 (注意一对一还是一对多的对应关系 容易乱 别把上层过滤掉的内容又关联回来了) from r in userInfo.RoleInfo from a in r.ActionInfo where a.ActionTypeEnum == act转载 2016-05-12 11:13:32 · 5915 阅读 · 0 评论 -
Entity Framework 的注意点
1 、表单请求提交到控制器中的方法 如果表单中name属性中的值恰好和方法参数中的模型的属性对应上的时候,会自动赋值给参数模型对象的属性, 包括表单中的字符串格式的时间也会自动转换成对象的时间类型的属性原创 2016-04-24 19:54:59 · 692 阅读 · 0 评论 -
从一个表向另一个表根据某字段更新另一个字段
MenuB 原表 Name 参照字段 Url更新字段Menu 要更新的表 text 参照字段 Url更新字段 UPDATE [Menu] SET [Url]=a.Url FROM [WMS].[dbo].[MenuB] a WHERE [text]=a.Name原创 2016-12-13 09:57:50 · 2762 阅读 · 0 评论 -
sql 语句查询 按某字段去重 保留按某个字段排序top1
例子:create table tablename (id int identity(1,1),attachid int,name varchar(10))insert into tablename values(23,'sss')insert into tablename values(33,'sdfs')insert into tablename values(33,'...原创 2018-09-19 11:21:29 · 9219 阅读 · 0 评论