SQL Server SQL语句大全

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

设置内存选项:SQLcode--设置minservermemory配置项EXECsp_configureN'minservermemory(MB)',0--设置maxservermemory配置项EXECsp_configureN'maxservermemory(MB)',256--使更新生效RECONFIGUREWITHOVERRIDE使用文件及文件组.sql:SQLcode/*--功能说明下面的代码是在SQLServer2000上创建名为MyDB的数据库该数据库包括1个主要数据文件、3个用户定义的文件组和1个日志文件ALTERDATABASE语句将用户定义文件组指定为默认文件组。之后,通过指默认的文件组来创建表,并且将图像数据和索引放到指定的文件组中。最后,将文件组中的指定数据文件删除--*/--切换到master数据库USEmasterGO--A.创建数据库MyDBCREATEDATABASEMyDBONPRIMARY--主文件组和主要数据文件(NAME='MyDB_Primary',FILENAME='c:\MyDB_Prm.mdf'),FILEGROUPMyDB_FG1--用户定义文件组1(NAME='MyDB_FG1_Dat1',FILENAME='c:\MyDB_FG1_1.ndf'),--次要数据文件1(NAME='MyDB_FG1_Dat2',FILENAME='d:\MyDB_FG1_2.ndf'),--次要数据文件2FILEGROUPMyDB_FG2--用户定义文件组2(NAME='MyDB_FG1_Dat',FILENAME='e:\MyDB_FG2.ndf')--次要数据文件LOGON--日志文件(NAME='MyDB_log',FILENAME='d:\MyDB.ldf')GO--B.修改默认数据文件组ALTERDATABASEMyDBMODIFYFILEGROUPMyDB_FG1DEFAULTGO--切换到新建的数据库MyDBUSEMyDB--C.在默认文件组MyDB_FG1创建表,并且指定图像数据保存在用户定义文件组MMyDB_FG2CREATETABLEMyTable(colaintPRIMARYKEY,colbchar(8),colcimage)TEXTIMAGE_ONMyDB_FG2--在用户定义文件组MyDB_FG2上创建索引CREATEINDEXIX_MyTableONMyTable(cola)ONMyDB_FG2GO--D.将要删除数据文件MyDB_FG1_Dat1上的数据转移到其他数据文件中,并且清空数据文件MyDB_FG1_Dat1DBCCSHRINKFILE(MyDB_FG1_Dat1,EMPTYFILE)--删除数据文件MyDB_FG1_Dat1ALTERDATABASEMyDBREMOVEFILEMyDB_FG1_Dat1调整tempdb数据库的文件属性.sql:SQLcode--A.将tempdb数据库的主数据文件大小设置为10MB。ALTERDATABASEtempdbMODIFYFILE(name=tempdev,size=100MB)GO--B.将tempdb数据库的主数据文件移动到指定的磁盘分区上,并且为其添加一个数据文件。--移动主数据文件ALTERDATABASEtempdbMODIFYFILE(NAME='tempdev',FILENAME='d:\tempdb.mdf')--添加次要数据文件ALTERDATABASEtempdbADDFILE(NAME='tempdata_1',FILENAME='d:\tempdb_data_1.ndf')日期概念理解中的一些测试.sql:SQLcode--A.测试datetime精度问题DECLARE@tTABLE(datechar(21))INSERT@tSELECT'1900-1-100:00:00.000'INSERT@tSELECT'1900-1-100:00:00.001'INSERT@tSELECT'1900-1-100:00:00.009'INSERT@tSELECT'1900-1-100:00:00.002'INSERT@tSELECT'1900-1-100:00:00.003'INSERT@tSELECT'1900-1-100:00:00.004'INSERT@tSELECT'1900-1-100:00:00.005'INSERT@tSELECT'1900-1-100:00:00.006'INSERT@tSELECT'1900-1-100:00:00.007'INSERT@tSELECT'1900-1-100:00:00.008'SELECTdate,转换后的日期=CAST(dateasdatetime)FROM@t/*--结果date转换后的日期-----------------------------------------------1900-1-100:00:00.0001900-01-0100:00:00.0001900-1-100:00:00.0011900-01-0100:00:00.0001900-1-100:00:00.0091900-01-0100:00:00.0101900-1-100:00:00.0021900-01-0100:00:00.0031900-1-100:00:00.0031900-01-0100:00:00.0031900-1-100:00:00.0041900-01-0100:00:00.0031900-1-100:00:00.0051900-01-0100:00:00.0071900-1-100:00:00.0061900-01-0100:00:00.0071900-1-100:00:00.0071900-01-0100:00:00.0071900-1-100:00:00.0081900-01-0100:00:00.007(所影响的行数为10行)--*/GO--B.对于datetime类型的纯日期和时间的十六进制表示DECLARE@dtdatetime--单纯的日期SET@dt='1900-1-2'SELECTCAST(@dtasbinary(8))--结果:0x0000000100000000--单纯的时间SET@dt='00:00:01'SELECTCAST(@dtasbinary(8))--结果:0x000000000000012CGO--C.对于smalldatetime类型的纯日期和时间的十六进制表示DECLARE@dtsmalldatetime--单纯的日期SET@dt='1900-1-2'SELECTCAST(@dtasbinary(4))--结果:0x00010000--单纯的时间SET@dt='00:10'SELECTCAST(@dtasbinary(4))--结果:0x0000000ACONVERT在日期转换中的使用示例.sql:SQLcode--字符转换为日期时,Style的使用--1.Style=101时,表示日期字符串为:mm/dd/yyyy格式SELECTCONVERT(datetime,'11/1/2003',101)--结果:2003-11-0100:00:00.000--2.Style=101时,表示日期字符串为:dd/mm/yyyy格式SELECTCONVERT(datetime,'11/1/2003',103)--结果:2003-01-1100:00:00.000/*==日期转换为字符串==*/DECLARE@dtdatetimeSET@dt='2003-1-11'--1.Style=101时,表示将日期转换为:mm/dd/yyyy格式SELECTCONVERT(varchar,@dt,101)--结果:01/11/2003--2.Style=103时,表示将日期转换为:dd/mm/yyyy格式SELECTCONVERT(varchar,@dt,103)--结果:11/01/2003/*==这是很多人经常犯的错误,对非日期型转换使用日期的style样式==*/SELECTCONVERT(varchar,'2003-1-11',101)--结果:2003-1-11SETDATEFORMAT对日期处理的影响.sqlSQLcode--1./*--说明SETDATEFORMAT设置对使用CONVERT把字符型日期转换为日期的处理也具有影响但不影响明确指定了style的CONVERT处理。--*/--示例,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SETDATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。--设置输入日期顺序为日/月/年SETDATEFORMATDMY--不指定Style参数的CONVERT转换将受到SETDATEFORMAT的影响SELECTCONVERT(datetime,'2-1-2005')--结果:2005-01-0200:00:00.000--指定Style参数的CONVERT转换不受SETDATEFORMAT的影响SELECTCONVERT(datetime,'2-1-2005',101)--结果:2005-02-0100:00:00.000GO--2./*--说明如果输入的日期包含了世纪部分,则对日期进行解释处理时年份的解释不受SETDATEFORMAT设置的影响。--*/--示例,在下面的代码中,同样的SETDATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。DECLARE@dtdatetime--设置SETDATEFORMAT为:月日年SETDATEFORMATMDY--输入的日期中指定世纪部分SET@dt='01-2002-03'SELECT@dt--结果:2002-01-0300:00:00.000--输入的日期中不指定世纪部分SET@dt='01-02-03'SELECT@dt--结果:2003-01-0200:00:00.000GO--3./*--说明如果输入的日期不包含日期分隔符,那么SQLServer在对日期进行解释时将忽略SETDATEFORMAT的设置。--*/--示例,在下面的代码中,不包含日期分隔符的字符日期,在不同的SETDATEFORMAT设置下,其解释的结果是一样的。DECLARE@dtdatetime--设置SETDATEFORMAT为:月日年SETDATEFORMATMDYSET@dt='010203'SELECT@dt--结果:2001-02-0300:00:00.000--设置SETDATEFORMAT为:日月年SETDATEFORMATDMYSET@dt='010203'SELECT@dt--结果:2001-02-0300:00:00.000--输入的日期中包含日期分隔符SET@dt='01-02-03'SELECT@dt--结果:2003-02-0100:00:00.000SETLANGUAGE对日期处理的影响示例.sqlSQLcode--以下示例演示了在不同的语言环境(SETLANGUAGE)下,DATENAME与CONVERT函数的不同结果。USEmaster--设置会话的语言环境为:EnglishSETLANGUAGEN'English'SELECTDATENAME(Month,GETDATE())AS[Month],DATENAME(Weekday,GETDATE())AS[Weekday],CONVERT(varchar,GETDATE(),109)AS[CONVERT]/*--结果:MonthWeekdayCONVERT----------------------------------------------------------MarchTuesdayMar1520058:59PM--*/--设置会话的语言环境为:简

1 / 56
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功