技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

SQL Server数据库管理常用SQL和T

SQL Server数据库管理常用SQL和T-SQL语句:1. 查看数据库的版本select @@version2.查看数据库所在机器操作系统参数exec master..xp_msver3. 查看数据库启动的参数sp_configure4.查看数据库启动时间select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1查看数据库服务器名和实例名... 全文

SQL Server数据库 管理 SQL T-SQL语句

SQL Server 2008对T

【引自lee576的博客】本文包含如下内容:◆T-SQL行构造器◆FORCESEEK表提示◆GROUPING SETS◆兼容性级别◆用户自定义表数据类型◆表值参数◆MERGE语句本文适用于:Microsoft SQL Server(TM) 2008 Developer Edition June 2007 CTP1、T-SQL行构造器... 全文

T-SQL SQL Server 2008 SQL

SQL Server 管理常用的SQL和T

1. 查看数据库的版本 select @@version 常见的几种SQL SERVER打补丁后的版本号: 8.00.194 Microsoft SQL Server 2000 8.00.384 Microsoft SQL Server 2000 SP1 8.00.532 Microsoft SQL Server 2000 SP2 8.00.760 Microsoft SQL Server 2000 SP3 8.00.818 Microsoft SQL Server 2000 SP3 w/ Cumulative Patch MS03-031 8.00.2039 Microsoft SQL Server 2000 SP4 2. 查看数据库所在机器操作系统参数 exec master..xp_msver 3. 查看数据库启动的参数 sp_configure 4. 查看数据库启动时间 select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1 查看数据库服务器名和实例名 print 'Server Name...............: ' + convert(varchar(30),@@SERVERNAME) print 'Instance..................: ' + convert(varchar(30),@@SERVICENAME) 5. 查看所有数据库名称及大小 sp_helpdb 重命名数据库用的SQL sp_renamedb 'old_dbname', 'new_dbname' 6. 查看所有数据库用户登录信息 sp_helplogins 查看所有数据库用户所属的角色信息 sp_helpsrvrolemember 修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程 更改某个数据对象的用户属主 sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner' 注意: 更改对象名的任一部分都可能破坏脚本和存储过程。 把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本 查看某数据库下,对象级用户权限 sp_helprotect 7. 查看链接服务器 sp_helplinkedsrvlogin 查看远端数据库用户登录信息 sp_helpremotelogin 8.查看某数据库下某个数据对象的大小 sp_spaceused @objname 还可以用sp_toptables过程看最大的N(默认为50)个表,查看某数据库下某个数据对象的索引信息: sp_helpindex @objname 还可以用SP_NChelpindex过程查看更详细的索引情况 SP_NChelpindex @objname clustered索引是把记录按物理顺序排列的,索引占的空间比较少。 对键值DML操作十分频繁的表我建议用非clustered索引和约束,fillfactor参数都用默认值。 查看某数据库下某个数据对象的的约束信息 sp_helpconstraint @objname 9.查看数据库里所有的存储过程和函数 use @database_name sp_stored_procedures 查看存储过程和函数的源代码 sp_helptext '@procedure_name' 查看包含某个字符串@str的数据对象名称 select distinct object_name(id) from syscomments where text like '%@str%' 创建加密的存储过程或函数在AS前面加WITH ENCRYPTION参数,解密加密过的存储过程和函数可以用sp_decrypt过程。 10.查看数据库里用户和进程的信息 sp_who 查看SQL Server数据库里的活动用户和进程的信息 sp_who 'active' 查看SQL Server数据库里的锁的情况 sp_lock 进程号1--50是SQL Server系统内部用的,进程号大于50的才是用户的连接进程。spid是进程编号,dbid是数据库编号,objid是数据对象编号。查看进程正在执行的SQL语句: dbcc inputbuffer () 推荐大家用经过改进后的sp_who3过程可以直接看到进程运行的SQL语句。 sp_who3 检查死锁用sp_who_lock过程 sp_who_lock 11.查看和收缩数据库日志文件的方法 查看所有数据库日志文件大小 dbcc sqlperf(logspace) 如果某些日志文件较大,收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M backup log @database_name with no_log dbcc shrinkfile (@database_name_log, 5) 12.分析SQL Server SQL 语句的方法: set statistics time {on | off} set statistics io {on | off} 图形方式显示查询执行计划 ,在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形,文本方式显示查询执行计划。 set showplan_all {on | off} set showplan_text { on | off } set statistics profile { on | off } 13.出现不一致错误时,NT事件查看器里出3624号错误,修复数据库的方法 先注释掉应用程序里引用的出现不一致性错误的表,然后在备份或其它机器上先恢复然后做修复操作 alter database [@error_database_name] set single_user 修复出现不一致错误的表 dbcc checktable('@error_table_name',repair_allow_data_loss) 或者可惜选择修复出现不一致错误的小型数据库名: dbcc checkdb('@error_database_name',repair_allow_data_loss) alter database [@error_database_name] set multi_user CHECKDB 有3个参数: repair_allow_data_loss 包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误, 以及删除已损坏的文本对象,这些修复可能会导致一些数据丢失。修复操作可以在用户事务下完成以允许用户回滚所做的更改。如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。 修复完成后,请备份数据库。 repair_fast 进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。这些修复可以很快完成,并且不会有丢失数据的危险。 repair_rebuild 执行由 repair_fast 完成的所有修复,包括需要较长时间的修复(如重建索引)。 执行这些修复时不会有丢失数据的危险 var kevent = 'onabort|onblur|onchange|onclick|ondblclick|onerror|onfocus|onkeydown|onkeypress|onkeyup|onload|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onreset|onresize|onselect|onsubmit|onunload'; var aevent = kevent.split('|'); jQuery('.showContent img').each(function(){ var nimg = this; jQuery.each(aevent, function(i, n){ if (n!='onload') { jQuery(nimg).attr(n, ''); } else { if (jQuery(nimg).attr(n) != 'if(this.width>650) this.width=650;') { jQuery(nimg).attr(n, ''); } } }); }); var encodetitle = encodeURI('一篇很棒的博文分享给大家:《SQL Server 管理常用的SQL和T-SQL》'); function show51share(){ window.open('http://t.51cto.com/index.php?m=share&url=http://chenjie.blog.51cto.com/24029/7194&type=l&count=&relateUid=&appkey=3843950324&title=' + encodetitle); } window._bd_share_config={"common":{"bdSnsKey":{"tsina":"2065779340"},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"http://blog.51cto.com/img/blog_down0731.jpg","bdStyle":"1","bdSize":"32"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)]; 0人 了这篇文章 类别:数据库技术┆阅读(0)┆评论(0) ┆ 返回博主首页返回博客首页 上一篇 修理及维护数据库文件(DBCC) 下一篇 sql server的BCP导入导出相关文章T-SQL数据库约束学习笔记备份数据库的T-SQL语句T-SQL查询语言基础(表)T-SQL编程学习笔记SQL Server 数据库管理常用的SQL和T-SQL语句T-SQL中default值的使用T-SQL语句之创建、修改、删除数据库[推建]MSSQL2000中OSQL工具的使用[执行T-sql..使你的 SQL 语句完全优化防范SQL注入的几种方法 2文章评论   [1楼]      [匿名]database 回复2008-05-30 19:02:57不错 ! 有发展 [2楼]      [匿名]database 回复2008-05-30 19:03:00不错 ! 有发展  发表评论            计算机网络管理员(国家职业资格一级高级技师)认证培训 a.mred:link{ color:#ff0000; text-decoration:underline;} a.mred:visited{color:#ff0000;} a.mred:hover{color:#ff0000;} a.mred:active{color:#ff0000;} 昵  称: 登录  快速注册 验证码: 点击图片可刷新验证码请点击后输入验证码博客过2级,无需填写验证码内  容: 同时赞一个... 全文

SQL T-sql 数据库 休闲 职场

新版SQL Enlight T

Ubitsoft发布了新版本的SQL Enlight,这是一款用于加速并简化T-SQL开发的工具。与StyleCop/FxCop类似,SQL Enlight提供了代码约定校验和代码标准增强的功能;同时还提供了类似于ReSharper及CodeRush的设计期分析和模板功能。SQL Enlight可集成到MS Visual Studio及SQL Management Studio中,同时还提供了一个命令行接口和MSBuild tasks以生成分析规则违例的XML报告。SQL Enlight具有如下特性:... 全文

SQL Enlight T-SQL 分析器

Sql Server2005对t

Sql Server2005中新增加了4个排名函数:ROW_NUMBER, RANK, DENSE_RANK, NTILE;大家一定已经对ROW_NUMBER非常熟悉了,所以我从最后一个NTILE开始分析。NTILE在msdn中的解释是:将有序分区中的行分发到指定数目的组中。各个组有编号,编号从一开始。对于每一个行,NTILE 将返回此行所属的组的编号。不知道大家是不是一下子就能看懂这个解释,反正我是结合解释自己写了例子才弄明白的。准备脚本,我们创建一个简单的3列表,三列分别是id,categoryId,和name,如下:... 全文

Sql Server2005 t-sql 排名函数

用T

预备考试脚本在开始考试之前,我需要一个模式和一些数据来运行所要考核的查询,列表A创建了所需的这些数据:列表A:... 全文

T-SQL 操作 SQL Server

T

 作者:jankie日期:2006-11-27 晴 今天介绍一下通过T-SQL语句来创建表时使用default的关键字来自动使用默认值,这个关键字和其它的如:identity,primary key ,not null ,unique等不是相同,这里简单描述一下, create table demo( id int primary key , name char (10) , content int, city char(10) default 'beijing')go demo表如下:__________________________|id  |name |content|city |   插入数据insert into demo values (1,'zhangsan',110,'shanghai')--成功添加了一条记录 insert into demo (id ,name ,conten)  --要使用default值必须在表的后面指定一下要加添的列values(2,'lisi',119)--后面一列的城市并没有添加,因为设置了默认值,所以它的值会自动变成了'beijing'  注:在使用默认值的时候一定在添加表的后面指定要添加的列名,默认值的列名无需添加进来... 全文

SQL T-sql 数据库 休闲 职场

T

想到用T-sql 查询指定数据库中所有的数据表时,发现自己已经淡忘了,写下来备忘:select * from information_schema.tables本文出自 “狼之魂” 博客,请务必保留此出处http://itwolf.blog.51cto.com/3286625/624458... 全文

sql 数据库 T-sql 休闲 职场

T

作者:jankie日期:2006-11-25 小雪    以下全部为T-SQL编写的一些简单的SQL创建、修改、查询表的语句,对初学或欲练习SQL的朋友有点帮助!一、创建表Create table 演员信息表( 学号 int identity primary key,   --identity 标识自动加1  姓名 char(10) not null,        --not null 不许为空值  年龄 char(10),  专业 char(10),  成绩 float,  城市 char(10),)注:如果创建列如:联系方式 int unique,--unique是使值为唯一二、向表中添加记录Insert into 演员信息表Values (1,’冯小刚’,40,’导演’,89,’城市’)三、修改表中的数据Update 演员信息表Set 成绩=成绩+5Where 姓名=’冯小刚’四、册除表中的数据例1: 删除所有数据内容Delete from 演员信息表例2:删除表中姓名为赵本山的演员Delete from 演员信息表Where 姓名=’赵本同’五、查询“演员信息表”中所有列Select *                  --*代表所有列From  演员信息表六、查询“演员信息表”中部分列Select 学号、姓名、成绩From 演员信息表七、查询前5条记录Select top 5 学号、姓名、成绩From 演员信息表八、查询所有演员都来自哪几个城市       Select distinct城市       From 演员信息表九、Where子句的使用  (1)逻辑符号       = 、<> 或!=、>、>=、<、<=       And 是条件连接符       Or  是“或”       Between and  是范围       In 是范围   (2)查询城市是北京的演员所有信息       Select *          From 演员信息表         Where 城市=’北京’   (3)查询城市不是香港的演员所有信息       Select *          From 演员信息表         Where 城市<>’香港’   (4)查询演员的成绩在70至80之间的姓名       Select 姓名  from 演员信息表       Where 成绩 >=70 and 成绩 <=80     若:使用between   and 来进行查询如下:       Select 姓名 from 演员信息表       Where 成绩 between 70 and 80   (5)查询年龄是90或95岁演员的所有信息       Select  *  from 演员信息表       Where 年龄=90 or 年龄=95   (6)查询专业为相声、演员和明星的演员所有信息        Select * from 演员信息表        Where 专业 in (‘相声’,’演员’,’明星’)十、NULL值匹配(1) 查询专业为空的演员所在城市和姓名    Select 姓名,城市  from 演员信息表    Where 专业is null   ---专业为空的才被列出(2)查询专为非空的演员所在城市和姓名    Select 姓名,城市   from 演员信息表    Where 专业 is not null    //专业非空的才被列出十一、通过关键字order by 将演员信息表中的成绩升序排列         Select * from 演员信息         Order by 成绩asc        ----asc 是升序的关键字可以不输入                      Desc      ----desc 是降序十二、常见聚合函数      Sum=总和;  max=最大值;min=最小值;avg=平均值;count=计数十三、Group By进行分组,只有select子句中包含了聚合函数时才能使用    (1)要查询同一个城市演员有多少人 (是根据是同一个城市的名字来计算其人数据的)       Select 城市,count(城市) as 人数       From演员信息表       Group by 城市      若加上以下语句 Having 城市=’北京’     //having条件子句只能应用于Group by子句中做条件    或 having count(城市) > 3   //只列出属于同一城市人数大于3的城市(2) 要查询同一个城市演员的成绩平均分数   Select 城市,avg(成绩) as 平均分数   From 演员信息表   Group by 城市   Having avg(成绩) > 60 and 城市 = ‘北京’     十四、表的其它管理   (1) 将表中的某列设置为主键(primary key )      Alter table 演员信息表      Add  primary key(学号)   (2)为表添加民族列      Alter table 演员信息表      Add 民族char(10)   (3) 删除表中民族列      Alter table 演员信息表      Drop column 民族 ... 全文

SQL T-sql 数据库 休闲 职场

T

1、使用CREATE database创建数据库testCREATE DATABASE test ON  PRIMARY ( NAME = 'test', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\test.mdf', SIZE=10240KB, MAXSIZE = UNLIMITED,FILEGROWTH = 10%) LOG ON ( NAME='test_log',FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\test_log.ldf',SIZE=1024KB,MAXSIZE = 5120KB,FILEGROWTH = 1024KB )GO... 全文

SQL T-sql 数据库 休闲 职场

T

----USE AdventureWorksGOSELECT * FROM sys.typesGO----use AdventureWorksgoselect * from sys.schemas where principal_id = 1go  --USE AdventureWorksGOSELECT t.name  FROM sys.tables t ,sys.schemas m WHERE t.schema_id = m.schema_id and m.name = 'HumanResources'GO----USE AdventureWorks;GODECLARE @dateTemp DATETIME;SET @dateTemp = GETDATE();EXEC [AdventureWorks].[dbo].[uspGetBillOfMaterials] 811, @dateTemp;GO----USE AdventureWorks;GOEXEC dbo.uspGetEmployeeManagers 1;GO----USE AdventureWorks;GOEXEC dbo.uspGetManagerEmployees 185;GO----USE AdventureWorks;GOSELECT CustomerID AS Id,('CN' + dbo.ufnLeadingZeros(CustomerID)) AS NewAccountNumberFROM Sales.CustomerORDER BY CustomerID;GO----USE AdventureWorks;GOSELECT ContactID, FirstName, LastName, JobTitle, ContactTypeFROM dbo.ufnGetContactInformation(100);GO----USE AdventureWorks;GOSELECT ProductID AS N'产品编号', ListPrice AS N'标价',     dbo.ufnGetProductDealerPrice(ProductID, StartDate) AS N'批发价',    StartDate AS N'开始日期',EndDate AS N'结束日期'FROM Production.ProductListPriceHistoryWHERE ProductID = 707ORDER BY ProductID, StartDate;GO  ----USE AdventureWorks;GOSELECT C.*FROM Person.Contact AS C    JOIN Sales.Individual AS I        ON C.ContactID = I.ContactID    JOIN Sales.Customer AS Cu        ON I.CustomerID = Cu.CustomerIDWHERE Cu.CustomerType = 'I'  AND LastName='Edwards'ORDER BY LastName, FirstName ;GO----USE AdventureWorks;GOSELECT Name,C.AccountNumberFROM Sales.Store AS S    JOIN Sales.Customer AS C        ON S.CustomerID = C.CustomerIDWHERE C.CustomerType = N'S'ORDER BY Name ;GO----USE AdventureWorks;SELECT S.Name AS N'商店', C.LastName AS '人名', CT.Name AS N'职位' FROM (Person.Contact AS C     JOIN Sales.StoreContact AS SC ON C.ContactID = SC.ContactID    JOIN Person.ContactType AS CT ON         CT.ContactTypeID = SC.ContactTypeID    JOIN Sales.Store AS S ON S.CustomerID = SC.CustomerID)WHERE (S.Name='Catalog Store')ORDER BY S.Name ;GO----USE AdventureWorks;GOSELECT S.CustomerID, S.Name AS Store, A.City, SP.Name AS State, CR.Name    AS CountryRegionFROM Sales.Store AS S    JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID    JOIN Person.Address AS A ON A.AddressID = CA.AddressID    JOIN Person.StateProvince SP ON         SP.StateProvinceID = A.StateProvinceID    JOIN Person.CountryRegion CR ON         CR.CountryRegionCode = SP.CountryRegionCodeWHERE SP.Name = 'Texas' and CR.Name='United States'ORDER BY S.CustomerID ;GO----USE AdventureWorks;GOSELECT Name, SalesOrderNumber, OrderDate, TotalDueFROM Sales.Store AS S    JOIN Sales.SalesOrderHeader AS SO ON S.CustomerID = SO.CustomerIDWHERE Name = 'A Bike Store'ORDER BY Name, OrderDate ;GO----USE AdventureWorks;GOSELECT PC.Name AS N'产品分类', PSC.Name AS N'子类型', PM.Name AS N'型号', P.Name AS N'产品名'FROM Production.Product AS P    FULL JOIN Production.ProductModel AS PM ON PM.ProductModelID = P.ProductModelID    FULL JOIN Production.ProductSubcategory AS PSC ON PSC.ProductSubcategoryID = P.ProductSubcategoryIDJOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryIDWHERE PC.Name = 'Bikes'ORDER BY PC.Name, PSC.Name ;GO----USE AdventureWorks;GOSELECT PM.ProductModelID, PM.Name AS [Product Model], Description, PL.CultureID, CL.Name AS LanguageFROM Production.ProductModel AS PM     JOIN Production.ProductModelProductDescriptionCulture AS PL         ON PM.ProductModelID = PL.ProductModelID    JOIN Production.Culture AS CL ON CL.CultureID = PL.CultureID    JOIN Production.ProductDescription AS PD         ON PD.ProductDescriptionID = PL.ProductDescriptionIDWHERE CL.Name = 'Chinese'ORDER BY PM.ProductModelID ;GO----USE AdventureWorks;GOSELECT V.Name AS N'供应商名', A.AddressLine1 as N'地址', A.City as N'城市', SP.Name AS N'州'FROM Purchasing.Vendor AS V     JOIN Purchasing.VendorAddress AS VA ON VA.VendorID = V.VendorID    JOIN Person.Address AS A on A.AddressID = VA.AddressID    JOIN Person.StateProvince AS SP on SP.StateProvinceID =         A.StateProvinceID    JOIN Person.CountryRegion AS CR ON CR.CountryRegionCode = SP.CountryRegionCodeWHERE SP.Name = 'California'GROUP BY V.VendorID, V.Name, A.AddressLine1, A.City, SP.Name, CR.NameORDER BY V.VendorID;GO----USE AdventureWorks;GOSELECT P.ProductNumber as N'产品号',P.Name as N'产品名', V.Name as N'供应商名'FROM Production.Product AS P    JOIN Purchasing.ProductVendor AS PV ON P.ProductID = PV.ProductID    JOIN Purchasing.Vendor AS V ON V.VendorID = PV.VendorIDWHERE V.Name ='Green Lake Bike Company'ORDER BY P.Name ;GO----USE AdventureWorks;GOSELECT P.Name AS N'产品', L.Name AS N'库存位置',    SUM(PI.Quantity)AS N'存量'FROM Production.Product AS P    JOIN Production.ProductInventory AS PI ON P.ProductID = PI.ProductID    JOIN Production.Location AS L ON PI.LocationID = L.LocationIDWHERE P.Name = 'Road-650 Black, 60'GROUP BY P.Name, L.NameORDER BY P.Name ;GO----USE AdventureWorks;GOSELECT WorkOrderID As N'工作号', P.Name AS N'产品名', OrderQty AS N'数量', DueDate AS N'日期'FROM Production.WorkOrder W     JOIN Production.Product P ON W.ProductID = P.ProductIDWHERE P.ProductSubcategoryID IN (1, 2, 3)AND P.Name = 'Road-550-W Yellow, 44'ORDER BY P.Name, DueDate ;GO ----USE AdventureWorksGOCREATE TABLE Employees( EmployeeID  int  NOT  NULL, Name  nvarchar(50)   NOT NULL, Title  nvarchar(30), BirthDate  datetime, HireDate  datetime, Address  nvarchar(60), City  nvarchar(15), Region  nvarchar(15), PostalCode  nvarchar(10), Country  nvarchar(15), HomePhone  nvarchar(24), Photo  image, Memo  nvarchar(50), CONSTRAINT PK_Employees PRIMARY KEY CLUSTERED  ( EmployeeID ASC ))----USE AdventureWorksGOIF OBJECT_ID ('dbo.table_test_6_1', 'U') IS NOT NULL    --1   DROP TABLE table_test_6_1GOCREATE TABLE table_test_6_1( id_num int IDENTITY(1,1),                              --2 fname varchar (20), minit char(1), lname varchar(30))INSERT table_test_6_1  (fname, minit, lname) VALUES  ('Karin', 'F', 'Josephs')         --3INSERT table_test_6_1  (fname, minit, lname) VALUES  ('Pirkko', 'O', 'Koskitalo')GO------1.查找并删除已经存在的数据表IF OBJECT_ID ('dbo.table_test_6_2', 'U') IS NOT NULL   DROP TABLE table_test_6_2GO--2.创建数据表,并插入数据CREATE TABLE table_test_6_2 (id_num int IDENTITY(1,1), company_name sysname)INSERT table_test_6_2(company_name) VALUES ('Test 1')INSERT table_test_6_2(company_name) VALUES ('Test 2')INSERT table_test_6_2(company_name) VALUES ('Test 3')INSERT table_test_6_2(company_name) VALUES ('Test 4')GO--3.查看table_test_6_2数据表,将看到4条数据SELECT * FROM table_test_6_2GO--4.删除中断的号DELETE FROM table_test_6_2 WHERE id_num = 3--5.查看table_test_6_2数据表,将看到3条数据,标识列记录分别为1,2,4SELECT * FROM table_test_6_2GO--6.查找最小标识号,结果为3-- SET IDENTITY_INSERT ON and use in table_test_6_2 table.SET IDENTITY_INSERT table_test_6_2 ONDECLARE @minidentval smallintDECLARE @nextidentval smallintSELECT @minidentval = MIN($IDENTITY) FROM table_test_6_2 IF @minidentval = IDENT_SEED('table_test_6_2')    SELECT @nextidentval =    --7.赋值语句    MIN($IDENTITY) + IDENT_INCR('table_test_6_2') FROM table_test_6_2 t1       WHERE  ($IDENTITY  BETWEEN  IDENT_SEED('table_test_6_2') AND 32766)       AND   ( NOT EXISTS (SELECT * FROM table_test_6_2 t2 WHERE t2.$IDENTITY = t1.$IDENTITY + IDENT_INCR('table_test_6_2')                         )) ELSE      SELECT @nextidentval = IDENT_SEED('table_test_6_2')PRINT  @nextidentval --输入查找到的值SET IDENTITY_INSERT table_test_6_2 OFF----USE AdventureWorksIF OBJECT_ID ('dbo.table_test_6_3', 'U') IS NOT NULL    DROP TABLE table_test_6_3GOCREATE TABLE table_test_6_3( id_num int IDENTITY(1,1),   fname varchar (20)  NOT NULL,  --1.设置为非空列 minit char(1), lname varchar(30))INSERT table_test_6_3  (fname, minit, lname) VALUES  ('K', 'F', 'Jose')  --2.以下不能执行成功 INSERT table_test_6_3  (minit, lname) VALUES  ('F', 'Jose')    ------1.创建table_test_6_4表USE AdventureWorks;GOCREATE TABLE table_test_6_4   (keycol      smallint,   process_id   smallint DEFAULT @@SPID,   --定义默认值   date_ins   datetime DEFAULT getdate(),   --定义默认值   mathcol      smallint DEFAULT 10 * 2,   --定义默认值   char1      char(3),   char2      char(3) DEFAULT 'xyz') --定义默认值GO--2.定义/* For illustration only, use DEFAULT definitions instead.*/CREATE DEFAULT abc_const AS 'abc';GOsp_bindefault abc_const, 'table_test_6_4.char1';GO--3.插入数据INSERT INTO table_test_6_4(keycol) VALUES (1);GO--4.查看数据SELECT * FROM table_test_6_4;GO----USE master;GO--1.创建数据库CREATE DATABASE Table_test_6_5ON PRIMARY  ( NAME='Table_test_6_5_Primary',    FILENAME=       'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\Table_test_6_5_Prm.mdf',    SIZE=4MB, MAXSIZE=10MB, FILEGROWTH=1MB),FILEGROUP Table_test_6_5_FG1  --次要数据文件  ( NAME = 'Table_test_6_5_FG1_Dat1',    FILENAME =       'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\Table_test_6_5_FG1_1.ndf',    SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB),  ( NAME = 'Table_test_6_5_FG1_Dat2',    FILENAME =       'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\Table_test_6_5_FG1_2.ndf',    SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB)LOG ON  ( NAME='Table_test_6_5_log',    FILENAME =       'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\Table_test_6_5.ldf',    SIZE=1MB, MAXSIZE=10MB, FILEGROWTH=1MB);GO--2.修改文件组为默认ALTER DATABASE Table_test_6_5   MODIFY FILEGROUP Table_test_6_5_FG1 DEFAULT;GO--3.在用户定义的文件组中创建数据表USE Table_test_6_5;CREATE TABLE MyTable  ( cola int PRIMARY KEY,    colb char(8) )ON Table_test_6_5_FG1;--4指定文件组GO ------创建数据表USE AdventureWorks;GOCREATE TABLE Table_test_6_6(   id       int      PRIMARY KEY,   cname    char(50),   address  char(50),   memo     char(50),   CONSTRAINT id CHECK (id BETWEEN 0 and 10000 ))--2.执行插入数据验证约束INSERT INTO Table_test_6_6 values(100000,'NAME','ADDRESS','MEMO');GO----USE AdventureWorksGO--在CREATE TABLE过程中设计字段的排序规则CREATE TABLE Table_test_6_7  (col1   int PRIMARY KEY,  col2    varchar(10)  COLLATE  French_CI_AS NOT NULL  )GO  本文出自 “刘建-怀才就象怀孕,时..” 博客,请务必保留此出处http://liujian.blog.51cto.com/950311/313217... 全文

T-SQL 实例 SQL命令 数据库 休闲

你是否也忘了刷新视图?

起因:         由于工作原因,我隔几天就要执行一批开发人员提供过来的脚本,部分是新需求的开发,部分是修复bug。往往包含有几百个。我用工具批量执行之后,系统继续运行,后来反反复复会有这样那样的错误,其中一个,经过开发人员的检查,是因为视图没刷新。         对此我纳闷了很久,视图不就是一堆select语句吗?怎么还要刷新?难道表改了不会跟着改?为此,我首先自己做一个实验,发现的确不会马上改过来,至于啥时候才更改,也不清楚,听说从2000的时候,这个问题已经存在,看来我孤陋寡闻了。测试: 步骤一:首先执行下面语句USE tempdb GO --创建表 IF OBJECT_ID('testTB') IS NOT NULL DROP TABLE testTB GO CREATE TABLE testTB ( id INT, NAME VARCHAR(10) ) --插入测试数据 INSERT INTO testTB SELECT 1,'a' UNION ALL SELECT 2,'b' UNION ALL SELECT 3,'c' IF OBJECT_ID('V_testTB') IS NOT NULL DROP VIEW V_testTB GO CREATE VIEW V_testTB AS SELECT * FROM testTB go SELECT * FROM V_testTB 得到结果:步骤二:更改表结构--添加一列 ALTER TABLE testTB ADD age INT然后再来执行一下视图:SELECT * FROM V_testTB得到结果:反复执行了10次,结果还是没变。步骤三:使用存储过程刷新视图sp_refreshview V_testTB然后再执行查询视图的语句:SELECT * FROM V_testTB眼前一亮,得到结果:可以看出,结构已经刷新,证明有效果了。分析:        细心的人应该发现,其实视图里面我用了*号。可以通过实验来证明,如果不用星号,是没问题的。而如果指定了列名,那么在新加一列的时候,管它有没有刷新,都不会有问题,因为你压根就不会用到这列,那么如果是删除呢?现在来试试,建表的代码依旧,把原有的添加列的代码改成删除列,另外*号依旧保留:--删除一列 ALTER TABLE testTB DROP COLUMN id再执行:SELECT * FROM V_testTB会得到以下的错误:证明删除是会报错的,不需要刷新,那么估计大家也猜到,就算指定列,也会报错,现在来证实一下:这次报错是这个,部分代码我就不写了。总结:根据上面的实验,可以得出: 1、视图里面尽可能不要出现*号。*号不仅对性能有影响,也不便于结构的更新。        2、无论视图所涉及的表结构有无修改,每次执行脚本后,刷新一下,总是好的。并且我遇到过这样的情景,一个名字是存储过程的名字,但是在使用:SELECT DISTINCT 'EXEC sp_refreshview ''' + name + '''' FROM sys.objects AS so INNER JOIN sys.sql_expression_dependencies AS sed ON so.object_id = sed.referencing_id WHERE so.type = 'V' AND sed.referenced_id = OBJECT_ID('testTB') ; 下面语句中时竟然能查出来,证明定义的时候有问题,所以这一步也同时可以检查一下会不会存在问题对象。顺带说一句,上面的脚本是把需要刷新的视图拼接出来,然后一次性执行。... 全文

Database sql server 视图 刷新视图 T-SQL

利用T

在这篇文章里,我将介绍怎样编写你的代码来提高缓存计划的重用。了解当有缓存计划或重用一个已有的计划时空格和注释会产生怎样的影响,这会帮助你降低你的应用程序缓存的计划数目。探究缓存计划... 全文

T-SQL代码

在T

一、临时表的两种表现形式。... 全文

临时表 T-SQL

T

T-SQL查询中用于流程控制的语句是本文我们主要要介绍的内容,T-SQL中的流程控制语句进一步扩展了T-SQL的力量……使得大部分业务逻辑可以在数据库层面进行。但很多人对T-SQL中的流程控制语句并没有系统的了解,本篇文章会系统的对T-SQL语句中的流程控制语句进行系统讲解。基本概念在没有流程控制语句的情况下,T-SQL语句是按照从上到下的顺序逐个执行:使用流程控制语句可以让开发人员可以基于某些逻辑进行选择性的跳转,实现了类似高级语言的跳转结构: 流程控制语句的使用范围和GO关键字... 全文

T-SQL查询 流程控制语句

T

之所以把约束和索引放到一起来看,主要是因为主键约束和唯一键约束,它们会自动创建一个对应的索引,先分别看下数据库中的几个约束。一 约束在关系型数据库里,通常有5种约束,示例如下:... 全文

唯一索引 唯一约束 T-SQL开发

T

T-SQL查询中我们有时候会用到基于列的逻辑表达式查询,这正是本文我们要介绍的内容。接下来我们就一起来了解一下吧。... 全文

T-SQL查询 基于列的逻辑表达式

T

一、子查詢:子查询在WHERE语句中的一般用法:SELECT … FROM 表1 WHERE 字段1 >(子查询)外面的查询称为父查询,括号中嵌入的查询称为子查询 UPDATE、INSERT、DELETE一起使用,语法类似于SELECT语句 将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个 例如:SELECT * FROM stuInfoWHERE stuAge>( SELECT stuAge FROM stuInfo where stuName='李斯文')GO 二、使用子查询替换表连接一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据表连接更适合于查看多表的数据 例如:SELECT stuName FROM stuInfo     WHERE stuNo=(SELECT stuNo FROM stuMarks WHERE writtenExam=60)GO 三、IN子查询IN后面的子查询可以返回多条记录,常用IN替换等于(=)的比较子查询 例如:SELECT stuName FROM stuInfo    WHERE stuNo IN     (SELECT stuNo FROM  stuMarks WHERE writtenExam=60)GO 四、EXISTS子查询如果子查询的结果非空,即记录条数1条以上,则EXISTS (子查询)将返回真(true),否则返回假(false) EXISTS也可以作为WHERE 语句的子查询,但一般都能用IN子查询替换 EXISTS子查询的语法:IF EXISTS (子查询)    语句例如:/*--采用EXISTS子查询,进行酌情加分--*/IF EXISTS (SELECT * FROM stuMarks WHERE writtenExam>80)  BEGIN    print '本班有人笔试成绩高于分,每人加分,加分后的成绩为:'    UPDATE stuMarks SET writtenExam=writtenExam+2    SELECT * FROM stumarks  ENDELSE  BEGIN    print '本班无人笔试成绩高于分,每人可以加分,加分后的成绩:'    UPDATE stuMarks SET writtenExam=writtenExam+5    SELECT * FROM stumarks  ENDGO 相反:NOT EXISTS子查询例如:IF NOT EXISTS (SELECT * FROM stuMarks WHERE                                 writtenExam>60 AND labExam>60)  BEGIN    print '本班无人通过考试,试题偏难,每人加分,加分后的成绩为:'    UPDATE stuMarks          SET writtenExam=writtenExam+3,labExam=labExam+3    SELECT * FROM stuMarks  ENDELSE  BEGIN    print '本班考试成绩一般,每人只加分,加分后的成绩为:'    UPDATE stuMarks          SET writtenExam=writtenExam+1,labExam=labExam+1    SELECT * FROM stuMarks  ENDGO 本文出自 “刘建-怀才就象怀孕,时..” 博客,请务必保留此出处http://liujian.blog.51cto.com/950311/306584... 全文

T-SQL高级查询 数据库 休闲 职场

[推荐](T

[推荐]得到一个给定用户使用了的权限脚本——通过知识共享树立个人品牌。得到一个给定用户使用了的权限脚本,直接上代码,自己研究。     SET ANSI_NULLS ON... 全文

T-SQL 给定用户使用了 权限脚本

问题集锦07:使用T

一、问题使用T-SQL导入数据时报错:use wwwwgoinsert INTO OPENDATASOURCE('SQLOLEDB','Data Source=WINNIE\IIDC;User ID=sa;Password=password').wwww.dbo.pro_unit_sort_nameselect * from wwww_gs.dbo.gs_unit_sort_name;消息 8152,级别 16,状态 14,第 1 行将截断字符串或二进制数据。语句已终止。 二、原因目标表字段定义超长。表定义为:use wwwwgoCREATE TABLE pro_unit_sort_name(CulID     varchar(50),Coll_Unit varchar(400),Cul_Sort varchar(400),Province varchar(50),Cul_Name varchar(400))  三、解决方法1、删除原来的目标表use wwwwgodrop table pro_unit_sort_name;  2、创建新表use gcwwgoCREATE TABLE pro_unit_sort_name(CulID     varchar(100),Coll_Unit varchar(100),Cul_Sort varchar(100),Province varchar(100),Cul_Name varchar(100))  3、执行导入use gcwwgoinsert INTO OPENDATASOURCE('SQLOLEDB','Data Source=WINNIE\IIDC;User ID=sa;Password=password').wwww.dbo.pro_unit_sort_nameselect * from wwww_gs.dbo.gs_unit_sort_name;  (6740 行受影响) 本文出自 “专注SQL Server 专注于..” 博客,转载请与作者联系!... 全文

SQLSERVER2005 T-SQL 数据库 休闲 职场

1 2