MSSQL - 技术教程文章

SQLServer 数据库开发顶级技巧

确保代码中的数据类型与数据库中的列类型保持一致   确保您的应用程序各层数据类型保持一致是非常重要的。例如,如果一列的数据类型为NVARCHAR(50),那么,您应该在代码查询与存储过程中使用相同类型的局部变量。   同样,数据层中的ADO.NET代码也应该指定相同的数据类型与长度。为什么这很重要呢?因为如果数据类型与查询匹配,SQL Server需要先进行数据类型的隐式转换,以使它们能够匹配。   也有一些情况,即使为参照列设...

使用java连接sqlserver2008 R2/sqlserver2008

package com.product.jdbc.dbutil;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DemoConn { Connection conn = null; static { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");// 加载数据库驱动 System.out.println("数据库驱动加载成功!!!--sqlserver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public Conne...

备份和还原SQL Server及压缩Access数据库

功能说明:备份和恢复SQL Server数据库 * 作者: 刘功勋; * 版本:V0.1(C#2.0);时间:2007-1-1 * 当使用SQL Server时,请引用 COM组件中的,SQLDMO.dll组件 * 当使用Access中,请浏览添加引用以下两个dll * 引用C:/Program Files/Common Files/System/ado/msadox.dll,该DLL包含ADOX命名空间 * 引用C:/Program Files/Common Files/System/ado/msjro.dll,该DLL包含JRO命名空间 * **************************************...

sql server存储过程简单使用【代码】【图】

1 创建存储过程  1.1 创建简单的存储过程   创建语句:createproc usp_helloworld asbeginprint‘Hello World‘end  创建完后,调用语句格式 exec + 存储过程名:exec usp_helloworld执行结果:  1.2 创建带参数的存储过程   语句:createproc usp_book @namenvarchar(50), @authornvarchar(50) asbeginselect*from book where name=@nameand author=@authorend  表中的数据:  调用存储过程,因为定义两个参数,在...

SQL Server数据完整性【代码】

我们在学习数据库的过程中,经常会听到两个概念:数据冗余和数据完整性。数据冗余是指数据库中存在一些重复的数据,数据完整性是指数据库中的数据能够正确反应实际情况,我们说,为了性能着想,数据库中允许有一些数据冗余,但是要保持数据的完整性。 数据完整性=可靠性+准确性,这里我们要清楚以下几点: ? 数据存放在表中 ? “数据完整性的问题大多是由于设计引起的” ? 创建表的时候,就应当保证以后...

SQL Server 自动增长清零的方法

方法1: 复制代码 代码如下:truncate table TableName 删除表中的所有的数据的同时,将自动增长清零。 如果有外键参考这个表,这个方法会报错(即便主键表和外键表都已经没有数据),请参考方法2。 PS: 用delete删除数据,自动增长不会清零的哦。 方法2: 复制代码 代码如下:DBCC CHECKIDENT(‘TableName‘, RESEED, 0) 不删除表的数据,直接重置自动增长的值。原文:http://www.jb51.net/article/29189.htm

Sql Server SQL语句创建数据库【代码】

今天一个家伙说创建个数据库,搞了半天没弄好,习惯了图形界面,这些东西都忘了 全还给了老师。。。。。。 1USE[master] 2GO 3IFEXISTS(SELECT1FROM sysdatabases WHERE NAME=N‘HkTemp‘)4BEGIN 5DROPDATABASE HkTemp --如果数据库存在先删掉数据库 6END 7GO 8CREATEDATABASE HkTemp9ON10PRIMARY--创建主数据库文件11( 12 NAME=‘HkTemp‘, 13 FILENAME=‘E:\Databases\HkTemp.dbf‘, 14 SIZE=5MB, 15 MaxSize=20MB, 16 FileGrowt...

精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

* 说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) insert into b(a, b, c) select d,e,f from b; * 说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b * 说明:外连接查询(表名1:a 表名2:b) ...

SQL Server的CONVERT() 函数介绍【代码】

定义和用法:CONVERT() 函数是把日期转换为新数据类型的通用函数。CONVERT() 函数可以用不同的格式显示日期/时间数据。语法:CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。可以使用的 style 值:Style IDStyle 格式100 或者 0mon dd yyyy hh:miAM (或者 PM)101mm/dd/yy102yy.mm.dd103d...

SQL Server 插入数据后获得自增主键值【代码】

通过SQLServer系统自带函数获取String sql = "insert into goods values(‘" + TextBox1.Text + "‘," + TextBox2.Text + ",0," + TextBox3.Text + ",‘‘,‘" + DropDownList1.SelectedItem.Text + "‘,‘" + Session["username"].ToString() + "‘,0,‘" + TextBox4.Text + "‘,‘未通过‘);select SCOPE_IDENTITY()";SqlConnection conn = new SqlConnection(s); SqlCommand cmd = new SqlCommand(sql,conn); conn.Open(); int ...

SQL Server DAC 管理员专用连接【代码】【图】

DAC 是Dedicated Administrator Connect 的缩写,是专用管理员连接通道,当SQL Server 因为资源不足而无法连接入系统的时候,管理员可通过该通道连接到数据,进行问题诊断和故障排除. 其实很久之前就知道DAC这个东东的,不过一直没有尝试着去连接. 下面记录下我第一次通过DAC连接的过程.首先第一步是开启.SQL 如下:1 sp_configure ‘show advanced options‘,12go34 sp_configure ‘remote admin connections‘,15go第二部是登录:...

SQLserver中的xp_cmdshell【代码】【图】

shell是用户与操作系统对话的一个接口,通过shell告诉操作系统让系统执行我们的指令xp_cmdshell在sqlserver中默认是关闭的存在安全隐患。--打开xp_cmdshellEXEC sp_configure ‘show advanced options‘, 1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell‘, 1;RECONFIGURE; --关闭xp_cmdshellEXEC sp_configure ‘show advanced options‘, 1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell‘, 0;RECONFIGURE;以下是跟xp_cmdshell有...

sqlserver查询效率

很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如: select * from table1 where name=‘zhangsan‘ and tID > 10000 和执行: select * from table1 where tID > 10000 and name=‘zhangsan‘ 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行...

SQL Server 2008 R2 下移动数据库的存储位置

使用场景:1. 该数据库增长的较大,存储磁盘空间不足;     2. 在特定情况下该数据库需要移动到另外一块磁盘上(呵呵。。。我的情况就是之前的磁盘要还给别人)步骤: 1. 新建查询     SELECT name, physical_name    FROM sys.master_files    WHERE database_id = DB_ID(‘yourDataBaseName‘);    GO 查看到结果会看到数据库主文件以及日志的名称和物理存储的地址名称   2.新建查询    ...

SQL Server 通过链接服务器访问Oracle

数据库:SqlServer2005 、Oracle 11gR2 系统环境:windows Server 2008R2 32位。 最近在做项目时,需要通过sql的链接服务器访问Oracle。以前弄过sql访问sql,感觉挺简单的,以为访问Oracle也差不多,实际做过后才发现存在很多差距。 步骤: 1、SQL Server端Windows需装对应版本的Oracle客户端。(我安装Oracle9i客户端后通过PL/SQL访问Oracle11gR2,没有问题,但是通过链接服务器访问就无法查询) ...

ADO.NET 连接数据库字符串小结(Oracle、SqlServer、Access、ODBC)

ADO.NET连接到 SQL Server SQL Server .NET Framework 数据提供程序支持类似于 OLE DB (ADO) 连接字符串格式的连接字符串格式。 复制代码 代码如下:using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // Do work here. } 连接到 OLE DB 数据源 OLE DB .NET Framework 数据提供程序通过 OleDbConnection 对象提供与使用 OLE DB 公开的数据源的连接以及与 Microsoft SQL Server 6.x 或较...

无法用排他锁锁定该数据库,以执行该操作。 (Microsoft SQL Server,错误: 5030)【代码】【图】

原因是因为其他的线程占用这SqlServer的连接可通过SQL查看select spid from master.dbo.sysprocesses where dbid=db_id(‘databaseName‘) 采用SQL杀死占用方kill spid记得在执行这个命令的时候切换为别的数据库,要不然本身会占用一个连接,还杀不掉如果杀掉后,不停的生成新的SPID,就把线上可能用到这个数据库的账户权限暂时取消掉,这样就可以避免线上的环境再连接到这个数据库 使用下面命令重命名use master go exec sp_renam...

SQL Server 2008数据库创建用户只读权限的两种方式【图】

在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用。 一、命令行方式创建 新建查询窗口,然后输入以下命令然后执行即可 sqlserver命令方式增加登录名、用户名及赋予相应权限sp_addlogin‘test‘,‘test‘,‘DB‘ >>登录名、密码、登录的数据库sp_grantdbaccess ‘test‘ >>将数据库用户加...

c#检测是否存在数据库(SQL SERVER)【代码】

privatestaticbool CheckDatabaseExists( string databaseName) {{string sqlCreateDBQuery;bool result = false;try{SqlConnection tmpConn = new SqlConnection(@"Data Source=(localdb)\ProjectsV13;Initial Catalog=Example;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;");sqlCreateDBQuery = string.Format("SELECT dat...

PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法

本文实例讲述了PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法。分享给大家供大家参考。具体分析如下:PHP 连接 MSSQL 的新手经常遇到这个问题:数据库里面的 nvarchar 字段中数据一切正常,但是用 PHP 查询出来却发现长度只有 255,我们都知道,在 MySQL 里面 varchar 的长度只有 255,但是 MSSQL 却不是,不会是 PHP 将 nvarchar 按照 MySQL 的 varchar 处理了吧.本文给出了解决方法:复制代码 代码如下:select cast(目标字段 as...

SQL Server 具体查询要点,自己整理【代码】

1,distinct 对某一列进行去重 检索有职工的工资大于或等于wh1仓库中任何一名职工工资的仓库号 selectdistinct cno from zhigongbiao where gongzi >= (selectMin(gongzi) from zhigongbiao where cno in (‘wh1‘)) 2 ,betweenand 在...之间 检索出工资在1220元到1240元范围内的职工信息。 select*from zhigongbiao where gongzi between1220and12403,orderbydesc ,asc 将一列进行升序或降序排列 先按仓库号排序,再按工资排序并...

sqlserver日志文件【代码】【图】

过程: 昨天下午数据库奔溃,表现就是连不上数据库了,重启服务之后好了。 查询日文文件 , “Autogrow of file ‘XX_log‘ in database ‘XX‘ was cancelled by user or timed out after 1896 milliseconds. Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly set a new file size.”。 找到原因: 数据库在自动增长,所以连接超时。分析:数据库日志文件满了...

多线程下使用使用 UniDAC+MSSQL 需要注意的问题(使用CoInitialize)

ADO线程不安全,UniDAC 在使用MSSQL也是如此。其实这是微软COM问题,不怪Devart公司。一般解决方法是在线程开始启用 CoInitialize(nil),线程结束调用 CoUninitialize 。如果你使用多种数据库连接,比如三层中经常切换到MSSQL和Oracle,我们只需在判断 TUniConnection 的连接前事件 OnBeforeConnect 写下如下代码:procedure TServDBFunc.ServConnBeforeConnect(Sender: TObject);beginif (ServConn <> nil) and SameText(ServConn...

SQL Server 利用游标解决Tempdb究极竞争-DBA-程序员需知【代码】【图】

SQL Server tempdb分配竞争算是DBA老生常谈的问题了,几乎现在所有的DBA都知道多建几个文件来解决/缓解问题.但是深层次的的竞争依旧不可避免.这里给大家剖析下游标在tempdb中的特点使其在一定场景下替代临时表/表变量对象,解决深层次的tempdb竞争问题. 在抛出这个不可避免的问题之前我们先简要看下什么是tempdb竞争.我们拿SQL Server创建一个临时表的过程来描述1 在系统表中创建表的条目(系统数据页中)2 分配一个IAM页并找到一个混合...

SQL Server 2008 R2 安装出错:Could not open key【图】

折磨了我一晚上的问题,终于解决了!以后千万不要卸载sql2008再重新安装,要了老命了!安装Sql Server 2008 R2 企业版出现错误提示无法继续安装,错误提示为:Could not open key: UNKNOWN\Components\7ABFE44842C12B390AF18C3B9B1A1EE8\000021599B0090400100000000F01FEC.Verify that you have sufficient access to that key, or contact your support personnel.如图所示: 很是头疼的一个问题,上网查解决办法其中有说是注册表...

SQL Server 2008R2 数据库出现“可疑”导致无法访问

日常对Sql Server关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无故停止数据库,从而导致Sql Server数据库不正常中断,当再次打开数据库时会发现某些数据库会被标记为“可疑”(suspect),即在数据库名旁加上了黄色的惊叹号,这时数据库就不能再被打开了,但数据库的结构及数据内容都还是存在的。解决方法:当数据库发生这种操作故障时,可以按如下操...

C#Excel上传批量导入sqlserver【代码】

前台: <x:FileUpload ID="btnUpField" runat="server" Label="上传Excel批量导入用户信息" ShowLabel="true" ></x:FileUpload><x:Button ID="Button1" Text="上传" runat="server" Icon="SystemSaveNew"OnClick="btnUpField_Click"></x:Button>后台:protectedvoid btnUpField_Click(object sender, EventArgs e){//将需要导入的文件上传到服务器 string filePath = "";string fileExtName = "";string myFileName;//用不到,但...

SQL Server中TEXT类型字段值在数据库中追加字符串方法

在数据上我们往往会遇到ntext大文本类型,这种类型如果和 nvarchar类型相加会出现问题,所以有一中方法可以解决这种问题。使用的sql 函数:TEXTPTR:返回要更新的 text、ntext 或 image 数据的文本指针的值。UPDATETEXT :在适当的位置更改 text、ntext 或 image 列的一部分WRITETEXT: 来更新和替换整个 text、ntext 或 image 字段举例:CREATE TABLE [dbo].[aa]( [ID] [int] NULL, [content] [ntext] NULL )insert aa values(1...

VFP执行 SQL Server 储存过程示例

PUBLIC errvalPUBLIC errmsgPUBLIC handleerrval=0errmsg=‘ ‘*Sql Server 连接参数sourcename= ‘test‘user= ‘sa‘passwd=‘‘******** 连接* 为连接打开错误显示=SQLSetProp(0,"DispWarning",.t.)handle=SQLConnect(sourcename,user,passwd)IF handle > 0WAIT WINDOW ‘连接成功‘ NOWAITENDIF******** 设置一些默认值=SQLSetProp(handle,‘Asynchronous‘,.f.)=SQLSetProp(handle,‘BatchMode‘,.t.)=SQLSetProp(handle,‘Co...

[ALM]一步一步搭建MS ALM环境 - 安装TFS + SQL SERVER【图】

描述:安装SQL SERVER 2012,安装TFS 2013,配置TFS,挽起袖子,准备干活儿步骤:1,打开Hyper-V Manager,参考[Hyper-V]使用操作系统模板创建新的虚拟机,先完成操作系统的安装,注意以下修改以下信息:磁盘名称:tfs.vhdx磁盘存储位置:x:\VMs\DC虚拟机名称:TFS使用现有的虚拟机磁盘:x:\VMs\DC\tfs.vhdx选择使用内网网卡:InternalVirtualNetwork内存大小:4096 MB服务器角色:Team Foundatiton Server, MS SQL Server2,参考[...