-
没有SQLServer数据库时如何打开.MDF文件
如果您在试图打开一个.MDF数据库文件时,却发现自己没有安装SQLServer数据库,该怎么办呢?这时候,如果恰巧您的机子上装有VisualStudio2005或者是更高的版本时,不用安装SQLServer数据库也能打开.MDF数据库文件。本文我们主要介绍了这一方法的实现,接下来我们就开始介绍...
数据库操作教程 2022-09-23 17:44:31 -
实例理解SQL中truncate和delete的区别
本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下---创建表Table1IFOBJECT_ID('Table1','U')ISNOTNULLDROPTABLETable1GOCREATETABLETable1(IDINTNOTNULL,FOIDINTNOTNULL)GO--插入测试数据INSERTINTOTable1VALUES(1,101),(2,102),(3,103),(4,104)GO---创建表Table2IFOBJECT_ID('Table2','U')ISNOTNULLDROPTABLETable2GOCREATETABLETable2(FOIDINTNOTNULL)GO--插入测试数据INSERTINTOTable2VALUES(101),(102),(103),(104)GOSELECT*FROMTable1GOSELECT*FROMTable2GO在Table1表中创建触发器,当表中的数据被删除时同时删除Table2表中对应的FOIDCREATETRIGGERTG_Table1ONTable1AFTERDELET...
数据库操作教程 2022-09-23 17:42:41 -
SQLServer无法收缩日志文件的原因分析及解决办法
最近服务器执行收缩日志文件大小的job老是报错我所用的一个批量收缩日志脚本USE[master]GO/******Object:StoredProcedure[dbo].[ShrinkUser_DATABASESLogFile]ScriptDate:01/05/201609:52:39******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROC[dbo].[ShrinkUser_DATABASESLogFile]ASBEGINDECLARE@DBNAMENVARCHAR(MAX)DECLARE@SQLNVARCHAR(MAX)--临时表保存数据CREATETABLE#DataBaseServerData(IDINTIDENTITY(1,1),DBNAMENVARCHAR(MAX),Log_Total_MBDECIMAL(18,1)NOTNULL,Log_FREE_SPACE_MBDECIMAL(18,1)NOTNULL)--游标DECLARE@itemCurCURSORSET@itemCur=CURSORFORSELECTnamef...
数据库操作教程 2022-09-23 17:41:41 -
SQLServer数据库bcp导出备份文件应用示例
/***授权*/EXECsp_configure'showadvancedoptions',1;goreconfigure;goexecsp_configure'xp_cmdshell',1;goreconfigure;go/**导入指定表的文本文件*/EXECmaster..xp_cmdshell'bcpdbname..tablenameind:DT.txt-c-Sservername-Usa-Ppassword'execmaster..xp_cmdshell'bcp"select*fromdbname..tablename"queryout"D:20140528.xls"-c-Sservername-Uuser-Ppassword'xp_cmdshell参数说明下面是我自己写的一个存储过程,可以直接拿去使用第一步,先要授权。上面有授权的SQL代码ifexists(select*fromsysobjectswheretype='p'andname='sp_export_posm_data')begindropproceduresp_export_posm_data;end;gocre...
数据库操作教程 2022-09-23 17:41:18 -
谈谈sqlserver自定义函数与存储过程的区别
一、自定义函数: 1.可以返回表变量 2.限制颇多,包括 不能使用output参数; 不能用临时表; 函数内部的操作不能影响到外部环境; 不能通过select返回结果集; 不能update,delete,数据库表; 3.必须return一个标量值或表变量 自定义函数一般用在复用度高,功能简单单一,争对性强的地方。二、存储过程 1.不能返回表变量 2.限制少,可以执行对数据库表的操作,可以返回数据集 3.可以return一个标量值,也可以省略return 存储过程一般用在实现复杂的功能,数据操纵方面...
数据库操作教程 2022-09-23 17:33:54 -
使用SQLServer判断文件是否存在后再删除(详解)
在SQLServer中可以使用系统内部存储过程xp_fileexist判断文件是否存在,如果存在再使用xp_cmdshell删除文件。xp_fileexist除了可以判断文件是否存在外,还可以判断文件夹是否存在,下面是下使用这两个的示例...
数据库操作教程 2022-09-23 17:30:10 -
SQLServerExecpt和notin性能区别
主要讲except和notin的性能上的区别。复制代码代码如下:CREATETABLEtb1(IDint)CREATETABLEtb2(IDint)BEGINTRANDECLARE@iINT=500WHILE@i>0beginINSERTINTOdbo.tb1VALUES(@i--v-int)SET@i=@i-1endCOMMIT我测试的时候tb1是1000,tb2是500复制代码代码如下:DBCCFREESYSTEMCACHE('ALL','default');SETSTATISTICSIOONSETSTATISTICSTIMEonSELECT*FROMtb1EXCEPTSELECT*FROMtb2;SELECT*FROMtb1WHEREidNOTIN(SELECTidFROMtb2);--得不到任何值SETSTATISTICSIOOFFSETSTATISTICSTIMEOFF执行计划:复制代码代码如下:SELECT*FROMtb1EXCEPTSELECT*FROMtb2;|--MergeJoin(RightAntiSemiJoin,MERGE:([master1].[dbo]...
数据库操作教程 2022-09-23 17:26:30 -
sqlserver中Selectcount(*)和Count(1)的区别和执行方式
在SQLServer中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的...
数据库操作教程 2022-09-23 17:25:26 -
深入SQLServer中定长char(n)与变长varchar(n)的区别详解
char(n)是定长格式,格式为char(n)的字段固定占用n个字符宽度,如果实际存放的数据长度超过n将被截取多出部分,如果长度小于n就用空字符填充。varchar(n)是变长格式,这种格式的字段根据实际数据长度分配空间,不浪费对于的空间,但是搜索数据的速度会麻烦一点...
数据库操作教程 2022-09-23 17:24:42 -
SQLSERVER数据备份文件的分割备份方法
当完整备份数据库的时候,我们有时候可能会遇到一种极端情况,比如服务器上C,D,E三个盘符都只剩下5G空间了但是如果要完整备份业务库需要12G的空间,那么这时候怎么办呢?使用文件组备份吗?但是数据库没有做表分区,没有分多个文件组,就只有一个主文件组啊这时候我们可以使用备份文件分割我使用自己机器示范一下,我的机器上有一个Temp2的数据库,数据库大小为1GB备份我们做一个Temp2数据库的完整备份复制代码代码如下:DECLARE@CurrentTimeVARCHAR(50),@FileNameVARCHAR(200)SET@CurrentTime=REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR,GETDATE(),120),'-','_'),'','_'),':','') --(Temp2数据库完整备份)SET@FileName='C:Temp2_FullBackup_'+@CurrentTime+'.bak'BACKUPDATABASE[Temp2]TODISK=@FileN...
数据库操作教程 2022-09-23 17:24:13 -
SQLServer:探讨EXEC与sp_executesql的区别详解
摘要1,EXEC的使用2,sp_executesql的使用MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码...
数据库操作教程 2022-09-23 17:21:08