MSSQL
文章平均质量分 56
smartsmile2012
这个作者很懒,什么都没留下…
展开
-
C# 数据库批量插入数据之 —— SqlBulkCopy、表值参数
创建了一个用来测试的Student表:CREATE TABLE [dbo].[Student]( [ID] [int] PRIMARY KEY NOT NULL, [Num] [varchar](10) NULL, [Name] [nvarchar](64) NULL, [Age] [int] NULL )一、SqlBulkCopy类 使用数据库BCP协议进行数据的批量复制,每一批的数量大约800条。/// <summary>...转载 2020-11-30 10:18:26 · 583 阅读 · 0 评论 -
sql server 判断是否存在数据库,表,列,视图
1 判断数据库是否存在if exists (select * from sys.databases where name = '数据库名') --drop database [数据库名] 2 判断表是否存在if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'转载 2017-08-11 15:37:48 · 1514 阅读 · 0 评论 -
C#中执行批处理文件(.bat),执行数据库相关操作
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Configuration;using System.Data.SqlClient;using System.Data;using Sy原创 2017-05-05 11:18:34 · 1194 阅读 · 0 评论 -
sqlserver中分区函数 partition by的用法
partition by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。partition by 与group by不同之处在于前者返回的是分组里的每一条数据,并且可以对分组数据进行排序操作。后者转载 2017-04-27 11:57:40 · 9785 阅读 · 0 评论 -
Sql server高级查询
高级查询在数据库中用得是最频繁的,也是应用最广泛的基本常用查询--selectselect * from student;--all 查询所有select all sex from student;--distinct 过滤重复select distinct sex from student;--count 统计select count(*) from studen转载 2017-06-15 14:15:34 · 3376 阅读 · 0 评论 -
Sqlserver获取所有数据库名,表信息,字段信息,主键信息,以及表结构等。
--获取所有数据库名:SELECT name FROM master..sysdatabases WHERE name NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'northwind','pubs' )--获取某数据库的所有表:SELECT name FROM YiDianTongV2..sysobjects Where xtype='U原创 2017-08-01 15:16:39 · 14127 阅读 · 0 评论 -
MSSQL,通过T-SQL脚本查询表的所有外键
--查询外键约束select FK_Name as [外键名],Parent_Tab_Name as [外键表], [外键列]=stuff((select ','+[Parent_Col_Name] from ( select FK.name as FK_Name,Parent_Tab.Name as Parent_Tab_Name,Parent_Col.Name转载 2017-08-01 13:40:28 · 629 阅读 · 0 评论 -
批处理(bat)实现SQLServer数据库备份与还原
备份数据库.bat@echo offset path=%path%;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binnecho 数据库备份开始date /t >> C:\backup\任务计划完成记录.txttime /t >> C:\backup\任务计划完成记录.txtosql.exe -S 127.0.0.1 -U原创 2017-07-18 15:08:29 · 12733 阅读 · 1 评论 -
SqlServer开启CLR使用(C#)DLL实现实时Socket通知
--①默认情况下,SQL Server中的CLR是关闭的,所以我们需要执行如下命令打开CLR: exec sp_configure 'clr enabled',1 reconfigure GO -- DROP FUNCTION dbo.fnScoketSend --删除Function-- drop assembly SqlDependency --删原创 2017-05-03 09:36:36 · 2478 阅读 · 0 评论 -
Sql Server 2014/2012/2008/2005 数据库还原出现 3154错误的解决办法
在Sql Server 数据库还原出现 3154错误解决方法1:不要在数据库名字上点右键选择还原,而要是在根目录“数据库”三个字上点右键选择还原,然后再选择数据库,问题便可以解决,如果不行参照方法2 解决方法2:写sql语句处理:RESTORE DATABASE [databaseName] FROM DISK = N'X:\数据库备份\database.原创 2017-03-17 15:05:56 · 6576 阅读 · 0 评论 -
刷新SqlServer数据库中所有的视图
ALTER PROCEDURE sp_refallviewAS--刷新所有视图DECLARE @ViewName VARCHAR(MAX);DECLARE @i INT;SET @i = 0;DECLARE #_cursor CURSORFOR SELECT name FROM sysobjects WHERE type = 'V';OPEN原创 2017-01-13 14:26:18 · 5464 阅读 · 1 评论 -
Sqlserver数据库 通过表触发器 实时通知应用程序
/*Sqlserver数据库开始相关服务以下示例显示了如何查看 OLE Automation Procedures 的当前设置。0未启用*/EXEC sp_configure 'Ole Automation Procedures';GO--启用Ole Automation Proceduressp_configure 'show advanced options', 1;GOR原创 2016-12-17 10:04:08 · 6501 阅读 · 0 评论 -
SQL SERVER 和Javascript根据地图经纬度计算距离函数
前些天客户提出一个这样的要求:一个手机订餐网,查询当前所在位置的5公里范围的酒店,然后客户好去吃饭。拿到这个请求后,不知道如何下手,静静地想了一下,在酒店的表中增加两个字段,用来存储酒店所在的经度和纬度,当订餐的时候,要求手机得到当前客户所在的经度和纬度传过来,再与数据库中酒店的经度和纬度计算一下,就查出来。为了在数据库中查询两点之间的距离,所以这个函数需要在数据库中定义。我网转载 2015-04-28 17:52:57 · 5024 阅读 · 1 评论 -
C#调用存储过程带输出参数或返回值
CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUTASBEGIN SELECT @studentname=studentname FROM student WHERE studentid=@studentid if @@Error<>0 RE转载 2014-05-26 14:02:46 · 26311 阅读 · 0 评论 -
SqlServer与Linq 无限递归目录树且输出层级
ALTER VIEW [dbo].[view_TreeLevel]ASWITH cteAS (SELECT a.ModuleID , a.Module_Name , a.Module_Description , a.Module_FatherID , a.Module_Url , a.Module_Order, 1 Le原创 2016-12-22 19:50:53 · 4230 阅读 · 0 评论 -
SQL2005自动备份,定期删除的维护计划及自动定期清除日志
作为一名DBA,他们最常见的日常任务是:1)定期完成数据库的完全备份或差异备份。2)定期清理备份文件,因为存储空间有限,可能只需要保存一个时期段内的文件(比如一周内或一月内)。而如何做到这两点呢?笔者相信在SQL SERVER2005版本出来之前要实现这种功能,也是可以实现的,只是实现定期清理备份文件显得不那么直接,一般需要手写批处理作业维护,而在SQL Server 2005原创 2012-11-30 16:48:47 · 31529 阅读 · 0 评论 -
SqlServer存储过程中使用事务
create proc pro_GetProTrans@GoodsId int,@Number int,@StockPrice money,@SupplierId int,@EmpId int,@StockUnit varchar(50),@StockDate datetime,@TotalMoney money ,@ActMoney money ,@baseId int,@转载 2017-08-16 16:13:05 · 714 阅读 · 0 评论 -
使用SQL语句清空数据库所有表的数据
近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL SERVER.1.搜索出所有表名,构造为一条SQL语句 declare @trun_name varchar(8000)set @trun_name=''select @trun_name=@转载 2017-07-25 11:55:24 · 5920 阅读 · 0 评论 -
Sql Server 查询指定范围(一周,一月,本周,本月等)内的数据,及产生一段时间内所有日期
1.查询今日的所有数据select * from 表名 where datediff(day,字段名,getdate())=02.查询昨日的所有数据select * from 表名 where datediff(day,字段名,getdate()-1)=03.查询当天日期在一周年的数据selcet * from 表名 where datediff(week,字段名,getda...原创 2019-06-28 10:57:23 · 7818 阅读 · 1 评论 -
数据库命令行工具osql.exe工具的妙用和相关参数
goto :mainosql :sqlserver外部命令工具,说白了就是微软作的一个exe程序可以连本机服务器或者其他服务器-S 指定sql数据库服务器-U 用户名-P 密码-d 数据库-i 使用输入文件-o 指定一个文件名称,把查询结果输出到这个文件中。-Q 执行的sql语句:mainosql -U sa -P 123456 -S 127.0.0.1 -Q "SELEC...原创 2018-08-03 16:28:59 · 6061 阅读 · 0 评论 -
Sqlserver判断数据库表,字段,存储过程等是否存在
--判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名') --drop database [数据库名] --判断表是否存在 if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERT...原创 2018-07-07 14:04:45 · 660 阅读 · 0 评论 -
Sqlserver递归查询所有上级或所有下级成员
--菜单目录结构表create table tb_menu( id int not null, --主键id title varchar(50), --标题 parent int --parent id);--查找所有上级节点with cte_parent(id,title,parent)as( select id,title,parent from tb_me...原创 2018-07-07 14:01:02 · 9954 阅读 · 4 评论 -
Sqlserver查询表描述和字段相关信息
--查询表结构CREATE PROCEDURE sp_QueryTable@TableName NVARCHAR(200) --表名ASselect a.name as table_name, b.name as column_name, c.value as remarks from sys.tables a left join sys.columns b on a....原创 2018-07-07 13:59:10 · 3521 阅读 · 1 评论 -
Sqlserver清理缓存和内存
--清除存储过程缓存 DBCC FREEPROCCACHE --清除会话缓存 DBCC FREESESSIONCACHE --清除系统缓存 DBCC FREESYSTEMCACHE('All') --清除所有缓存 DBCC DROPCLEANBUFFERSGO --打开高级配置 exec sp_configure'show advanced options', 1 GO...原创 2018-07-07 13:57:43 · 10777 阅读 · 0 评论 -
SqlServer还原数据库的存储过程
/******************************************* * 还原数据库 *******************************************/ALTER PROC sp_ReCreateDataBase@TargetDataBase NVARCHAR(500), --目标数据库@BakDBPath NVARCHAR(500), --...原创 2018-06-23 09:40:06 · 2173 阅读 · 0 评论 -
SqlServer生成一段时间内的随机时间
--生成一段时间内的随机时间declare @Date_start datetime declare @Date_end datetime set @Date_start= '2018-06-01' set @Date_end=getdate() select 时间=dateadd(minute,abs(checksum(newid()))%(datediff(minute,@Date_...原创 2018-06-08 11:14:01 · 7995 阅读 · 1 评论 -
SQL中给定某一日期段生成所有日期数据
SELECT CONVERT(NVARCHAR(10), DateAdd(day,number,'2014-09-29'),120) AS GroupDay FROM master..spt_values WHERE type = 'p' AND number <= DateDiff(day,'2014-09-29','2014-10-29') GroupDay2014-09-2...原创 2018-05-29 17:23:12 · 4865 阅读 · 0 评论 -
SqlServer判断数据库、表、字段、存储过程、函数是否存在
判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名')--drop database [数据库名]判断表是否存在if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUser原创 2017-11-14 13:18:27 · 3160 阅读 · 2 评论 -
SqlServer批量备份多个数据库且删除3天前的备份
/******************************************* * 批量备份数据库且删除3天前的备份 *******************************************/DECLARE @backupfile VARCHAR(1024) DECLARE @backdesc VARCHAR(1024) DECLARE @filename V原创 2017-09-20 14:55:25 · 1535 阅读 · 0 评论 -
解决sql server中批处理过程中“'CREATE/ALTER PROCEDURE 必须是查询批次中的第一个语句”
-----------------------------------------line-------------------------------------------------USE [p20-cy-2966];/* V1.0.2版本SQL批处理*/--判断某表的某字段是否存在if (not exists(select * from syscolumns where原创 2017-09-20 14:52:40 · 5688 阅读 · 1 评论 -
MS SQLServer 批量附加数据库
/************************************************************ * 标题:MS SQLServer 批量附加数据库 * 说明:请根据下面的注释使用此脚本 * 时间: 2015/7/13 11:16:41 ********************************************************转载 2017-09-28 13:28:06 · 2958 阅读 · 0 评论 -
sqlserver常用sql语句,更改字段,建立唯一键,多个字段去重复等
--修改字段类型:--alter table 表名 alter column 待修改字段名 待修改字段类型alter table users alter column userid varchar(10)--多个字段建立唯一索引create unique index [索引名] on 表名(字段名,字段名)alter table 表名 add constraint 约束名 unique转载 2015-03-06 16:11:07 · 11905 阅读 · 3 评论 -
在sqlserver2005/2008中备份数据库,收缩日志文件
---1.先备份数据库(含日志文件)use myhisgobackup database myhis to disk='d:\myhis_rzbak'go---2.设为简单恢复模式use [master] goalter database myhis set recovery simple with no_wait goalter database myhis set re转载 2015-02-05 14:14:18 · 1610 阅读 · 0 评论 -
SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原
--作业定时压缩脚本 多库批量操作DECLARE @DatabaseName NVARCHAR(50)DECLARE @ExecuteSql NVARCHAR(MAX)SET @ExecuteSql=''DECLARE name_cursor CURSORFOR SELECT name FROM master..sysdatabases WHERE name NOT IN ( 'ma原创 2017-08-11 09:11:28 · 1832 阅读 · 0 评论 -
SqlServer和Oracle中一些常用的sql语句8 触发器和事务
--创建和执行事后触发器--更新仓库备份表中记录时自动创建数据表且插入三条记录create trigger db_trigger1 on 仓库备份 for updateasbegin if Exists(select * from sys.sysobjects where id=OBJECT_ID('db_tabletriuser')) drop table db_table原创 2013-06-24 14:42:21 · 1407 阅读 · 0 评论 -
MS SqlServer海量数据分页存储过程收集
CREATE PROC [dbo].[Mypage] @tableName SYSNAME,-- 表名 @keyField NVARCHAR(1000),-- 主键,多个主键有逗号分隔开 @pageIndex INT=1,-- 要显示的页码转载 2013-01-16 16:13:01 · 1134 阅读 · 0 评论 -
sqlserver 使用脚本创建Sql Server代理作业
use masterGO/* --开启sql server代理sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Agent XPs', 1; GO RECONFIGURE GO*/--定义创建作业DECLARE @jobid uniquei转载 2016-12-16 19:27:06 · 1394 阅读 · 0 评论 -
SqlServer和Oracle中一些常用的sql语句10 特殊应用
--482, ORACLE / SQL SERVER--订购数量超过平均值的书籍WITH Orders_BookAS ( SELECT Book_Name, SUM(Qty) Book_Qty FROM Orders GROUP BY Book_Name )SELECT *FROM Orders_BookWHERE Book_Qty >原创 2013-06-26 11:53:38 · 1889 阅读 · 0 评论 -
SQL简单的日报和月报
--320, SQL SERVER 日报--查询2009-01-01当天客户A1,A2,A3的订单数量SELECT Cust_Name , CONVERT(CHAR(10), Order_Date, 120) Order_Date , SUM(Qty) QtyFROM Orders_BigWHERE 1=1 AND Cust_Name IN ('A1', '原创 2013-06-25 15:54:30 · 3666 阅读 · 0 评论 -
SqlServer和Oracle中一些常用的sql语句5 流程控制语句
--在sql语句中 begin...end 用来设定一个程序块 相关于c#中的{} declare @yz real,@w int --声明变量set @w=120 --为变量赋值 if @w<=100 --if条件语句 begin --Begin程序块 set @yz=@w*0原创 2013-06-24 11:31:44 · 2320 阅读 · 0 评论