
SQL SERVER
make1828
这个作者很懒,什么都没留下…
展开
-
Sql Server 多条数据作为参数传入
//什么传入参数变量DECLARE@chargetype varchar(200)//参数赋值SET @chargetype='sa,rhis'//查询SELECT * FROM master.sys.syslogins WHERE charindex (',' + name +',' , ',' + @chargetype + ',') > 0//如果列不是字符类型,请转换列为字符//参数赋值SET @chargetype='3,6'//查询SELECT...原创 2020-11-10 17:15:17 · 706 阅读 · 0 评论 -
sql server 系统表sysobjects、sysindexes、syscolumns损坏修复方法
sql server数据库中三张重要的系统表sysobjects:在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。sysindexes:数据库中的每个索引和表在表中各占一行。syscolumns:每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。这三张表用ID(表ID)字段关联。这三张系统表一旦损坏,与之对应数据转载 2014-04-29 16:53:16 · 15724 阅读 · 4 评论 -
用asp.net还原与恢复sqlserver数据库
需要注意的时还原,还原的时候问题最大了,有别的用户使用数据库的时候无法还原,解决办法就是在MASTER数据库中添加一个存储过程:create proc killspid (@dbname varchar(20))asbegindeclare @sql nvarchar(500)declare @spid intset @sql='declare getspid cu转载 2014-05-07 08:48:37 · 1150 阅读 · 0 评论 -
去除数据库重复的保留一条记录,其他不改变
如上图,HeadersNo ,MachineNo,Description ,如果有行的这三列相同,那么这三列只需要显示一行数据。原创 2014-08-15 11:21:52 · 844 阅读 · 0 评论 -
SQL语句中如何将字符串变量传递给In语句
--1. 构造使用IN子句的动态Transact-SQL方法进行编号查询 --a. 要查询的字段类型是数字型 --查询的值列表DECLARE @idlist varchar(100)SET @idlist='1,2,3' --拼接并执行动态Transact-SQL语句EXEC('SELECT * FROM tbname WHE转载 2014-09-23 14:38:36 · 32379 阅读 · 3 评论 -
我是如何在SQLServer中处理每天四亿三千万记录的
项目背景这是给某数据中心做的一个项目,项目难度之大令人发指,这个项目真正的让我感觉到了,商场如战场,而我只是其中的一个小兵,太多的战术,太多的高层之间的较量,太多的内幕了。具体这个项目的情况,我有空再写相关的博文出来。这个项目是要求做环境监控,我们暂且把受监控的设备称为采集设备,采集设备的属性称为监控指标。项目要求:系统支持不少于10w个监控指标,每个监控指标的数据更新不大于20秒转载 2014-11-28 09:25:43 · 827 阅读 · 0 评论 -
数据库SQL优化总结
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库.转载 2014-12-18 16:54:38 · 521 阅读 · 0 评论 -
SQL Case when 的使用方法
Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进转载 2014-12-03 16:57:32 · 1106 阅读 · 0 评论 -
SQL 数据库疑难解决方案集合
SQL拆分数据:请问大家能否把图中两条记录用SQL语句,拆分为4条,也就是查询出来有12条记录,谢谢!(拆分的依据是S1,S2,S3,S4中有没有数量,有的话独立开来),求救!!!比如这两条记录用SQL语句拆分以后是这种格式:比如:arrival_id manual_id supply_no warehouse_no goods_no colorid转载 2014-12-26 11:32:39 · 716 阅读 · 0 评论 -
关于SQL递归查询在不同数据库中的实现方法
比如表结构数据如下:Table:TreeID Name ParentId1 一级 02 二级 13 三级 24 四级 3 SQL SERVER 2005查询方法:123456789101112转载 2015-10-19 14:45:20 · 3248 阅读 · 0 评论 -
SQL 数据聚合
连续聚合下面的例子将使用一个EmpOrdersr汇总表,每位雇员在每个月占一行,包含该雇员在一个月内处理过的订单数量,运行下代码创建数据:CREATE TABLE EmpOrders ( empid INT NOT NULL , ordmonth DATE NOT NULL ,--只取到月份2015-07-07 qty INT NOT转载 2015-11-09 09:20:40 · 1895 阅读 · 0 评论 -
sql表删除列的default约束有效方法
declare @tablename varchar(100), @columnname varchar(100), @tab varchar(100)set @tablename = 'T_Core_Department' --表名set @columnname= 'Dpt_Type' --字段名称 declare @defname varchar(100) -原创 2017-09-07 15:29:01 · 2384 阅读 · 0 评论 -
使用sp_addlinkedserver实现不同服务器的数据库操作
--查看当前链接情况:select * from sys.servers;--使用 sp_helpserver 来显示可用的服务器Exec sp_helpserver--删除已经存在的某个链接Exec sp_droplinkedsrvlogin '192.168.2.66',NullExec sp_dropserver '192.168.2.66'--使用sp_addlink...原创 2019-01-30 09:03:07 · 879 阅读 · 0 评论 -
SQL 时间字段为空转换为空字符串
先看下数据库结构:转换后的效果:代码:SELECT *,CASE WHEN AddTime IS NOT NULLTHEN CONVERT(varchar(20),AddTime,20)ELSE '' END ConvertTimeFROM [BingFaTest].[dbo].[Product] ...原创 2019-02-18 16:03:40 · 4683 阅读 · 0 评论 -
MySQL和SqlServer的区别
一、查看表结构数量等mysql语句:-- 查看系统内所有数据库show databases;-- 查询数据库内所有表show tables;-- 显示表结构desc 表名;sql server语句:-- 查看系统内所有数据库SELECT name, database_id, create_date FROM sys.databases ;-- 查询数据库内所有表s...转载 2019-03-05 17:00:02 · 573 阅读 · 0 评论 -
SQL: FETCH NEXT和 between and 的区别
--获取1000行数据,单位是行SELECT ID FROM HIS_Message WHERE keyName IN ('S0035','S0036') ORDER BY ID OFFSET (1000 * (1 - 1)) ROW FETCH NEXT 1000 ROWS ONLY效果图如下:--获取ID为1-1000的数据,单位是ID值SELECT ID FROM...原创 2019-03-19 09:30:59 · 1334 阅读 · 0 评论 -
多表关联,一个表字段数据更新到另一张表字段中
第一种方法:UPDATE ASET A.字段 = D.字段FROM A, B, CWHERE 条件第二种方法: 第一步:创建视图 CREATE VIEW 视图名称 as SELECT A.字段,B.字段 FROM A INNER JOIN B ON A.ID=B.ID 第二步;更新视图 UPDATE 视图名称 SET A.字段=B.字段...原创 2019-06-21 11:09:19 · 2777 阅读 · 0 评论 -
Linq 左连接 left join
Suppose you have a tblRoom and tblUserInfo. Now, you need to select all the rooms regardless of whether the room has user information or not. This calls for a LEFT JOIN which will select everything转载 2013-11-15 17:32:08 · 32618 阅读 · 4 评论 -
一个Excel导入SQL Server的例子
有人提问如下:这个是Excel的,比如是test.xls欠费年份 欠费开始月份 欠费结束月份 应缴金额(月租) 2001 9 12 94.4 2008 5 12 88.8 2010 8 12 90.4___________________________________________这个是表:比如是a表a(pk,int,not null) //转载 2013-08-26 15:38:00 · 620 阅读 · 0 评论 -
开启远程数据库组件
exec sp_configure 'show advanced options',1RECONFIGUREexec sp_configure 'Ad Hoc Distributed Queries',1RECONFIGURE转载 2013-08-09 08:29:28 · 553 阅读 · 0 评论 -
获取年,月,日
<br />SELECT DATENAME(Year,GETDATE())+'年'+CAST(DATEPART(Month,GETDATE()) AS varchar)+'月'+DATENAME(Day,GETDATE())+'日'+DATENAME(hh,GETDATE())+'小时'+DATENAME(mi,GETDATE())<br /> <br />SELECT CONVERT(char(11),getdate(),120)+CONVERT(char(12),getdate(),114)原创 2011-03-07 16:50:00 · 446 阅读 · 0 评论 -
查询 某天 早上9点到下午4点的人数
<br />select DATEPART(hh,eq.CreateTime) AS 小时,COUNT(*)AS 记录 from Equipment eq inner join Account a on eq.AccountID=a.AccountID <br />WHERE datepart(hh,eq.CreateTime)>9 and (datepart(hh,eq.CreateTime)<16)<br />and DATENAME(day,eq.CreateTime)= DATENAME(day,'原创 2011-03-07 17:17:00 · 1009 阅读 · 0 评论 -
数据库递归
<br />CREATE function [dbo].[GetChildAccount](@ID varchar(10)) <br />returns @t table(ID varchar(10),ParentID varchar(10),Level int) <br />as <br />begin <br /> declare @i int <br /> set @i = 1 <br /> insert into @t select @ID,@ID,0原创 2011-03-07 16:57:00 · 629 阅读 · 0 评论 -
清除数据库日志方法
dbcc shrinkdatabase(DATABASE) backup log DATABASE with truncate_only原创 2011-04-07 11:17:00 · 858 阅读 · 0 评论 -
《SQL语法大全》
SQL code一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwin转载 2012-03-01 16:25:40 · 404 阅读 · 0 评论 -
SQL Server 2008中SQL之WaitFor
在SQL Server 2005以上版本中,在一个增强的WaitFor命令,其作用可以和一个job相当。但使用更加简捷。看MSDN:http://msdn.microsoft.com/zh-cn/library/ms187331.aspx语法为:[ruby] view plaincopyprint? WAITFOR { DELA转载 2012-04-09 10:06:04 · 641 阅读 · 0 评论 -
SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MSDN:http://msdn.microsoft.com/zh-cn/library/bb510625.aspx功能:根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。我们看一个例子,假如,有一总产品列表,一个分店转载 2012-04-09 09:47:55 · 478 阅读 · 0 评论 -
SQL Server 2008中增强的汇总技巧
SQL Server 2008中对汇总有明显的增强,有点像Oracle的语法了。请看下面五个例子:假定场景如下:某几位员工在不同时间参加了不同的项目,获取了相应的收入,现在需要按各种分类进行统计。基本表如下: [sql] view plaincopyprint?USE testDb2 GO IF NOT OBJECT_ID('tb_Income')转载 2012-04-09 09:17:37 · 394 阅读 · 0 评论 -
SQL Server 2008中SQL增强之一:Values新用途
SQL Server 2008中SQL应用系列--目录索引SQL Server 2008中新增功能:可以使用单个Insert命令插入多行。 Create table Demo_Values (PKID int not null identity(1,1) primary key ,DName Nvarchar(20) null ,D转载 2012-04-09 09:21:19 · 387 阅读 · 0 评论 -
SQL Server 中几个有用的特殊函数
在SQL Server 的使用过程中,发现几个很有用,但不太常用(或细节不太清楚)的函数(存储过程):isnumeric,isdate,patindex,newid,collate,sp_executesql,checksum遂记下,以备日后查询。不敢独享,与君共之。有用且看,无用略过。1> isnumeric( expression )-- 返回值 1 | 0,判断是否是转载 2012-07-05 16:15:55 · 643 阅读 · 0 评论 -
Excel表数据导入Sql Server数据库中
C#、ASP.NET中将Excel表中的数据导入到Sql Server数据库中对应的表中。这里我们将E:\test.xls中Sheet1表中的数据导入到test数据库中的my_test表中。软件:VS2005,SQL Server2000,test.xls中Sheet1表中有三个字段,编号、名称、备注。具体内容如下图。1、首先,我们要先在test数据库中新建一个my_t转载 2012-07-06 09:35:36 · 2079 阅读 · 0 评论 -
Excel文件导入到SQL,文本、数字丢失,变成NULL的处理
导入一个Excel到Sql,好方便进行数据的筛选,但是却发现,在导入后,电话字段有很多数据丢失,变成了Null,经过仔细检查,发现丢失的都是包含有字符型的(如区号与号码之间的-),再查看一下导入后的sql表,电话所在字段类型为float类型~~~难怪会有很多数据丢失了。。将Excel中的该列单元格格式改为 文本 格式,再导入,已经不行。搜索一番,发现有一个方法,不过这个方法只针对于完全数字转载 2012-07-06 09:31:21 · 12945 阅读 · 1 评论 -
将excel文件中的数据导入导出至SQL数据库中(Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0|office2003和office2007)
首先说明一下Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0区别:有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。Jet 引擎大家都很熟悉,可以访问 Office 97-2003,但不能访问 Office 2007。A转载 2012-07-06 09:40:08 · 4747 阅读 · 0 评论 -
SQL Server事务处理
经常用到SQL Server事务,顺便整理了一下1.事务说明 事务是对数据库执行的一个操作单位Commit Tran: 用于提交事务,将所做的修改保存到数据库。Rollback Tran: 用于回滚事务,撤销还没有保存到数据库的命令。SAVE TRAN : 退回到指定的事务保存点. 2.创建相关表的脚本--DROP TABLE d转载 2013-01-09 17:37:15 · 594 阅读 · 0 评论 -
SQL 行转列
先建立一张临时表:CREATE TABLE #Inpours( [ID] INT IDENTITY(1,1), [UserName] NVARCHAR(20), --游戏玩家 [CreateTime] DATETIME, --充值时间 [PayType]原创 2013-07-30 14:22:22 · 1151 阅读 · 0 评论 -
SQL 多条件查询 IN 成功 以及 patindex用法
//先声明DECLARE @BARANDID VARCHAR(100)patindex 用法,例如 YHBH =10,20,30 如果 我要单独值查询满足20条件的记录呢?SFRBH=20SET @BARANDID= (SELECT YHBH FROM SKJBXX_FPBHQD WHERE YLJGBH=@YLJGBH AND patindex('%,"+S原创 2013-07-31 18:05:56 · 1817 阅读 · 0 评论 -
sql datetime获取本周,本月,本年
<br />Dateadd(wk,datediff(wk,0,getdate()),-1) <br />2Dateadd(wk,datediff(wk,0,getdate()),6) <br />3<br />4Dateadd(mm,datediff(mm,0,getdate()),0) <br />5Dateadd(ms,-3,dateadd(mm,datediff(m,0,getdate())+1,0))<br />6<br />7Dateadd原创 2011-03-07 16:10:00 · 859 阅读 · 0 评论