SQLServer2008语句大全完整版--========================--设置内存选项--========================--设置minservermemory配置项EXECsp_configureN'minservermemory(MB)',0--设置maxservermemory配置项EXECsp_configureN'maxservermemory(MB)',256--使更新生效RECONFIGUREWITHOVERRIDE--============================================================--========================--使用文件及文件组.sql--========================/*--功能说明下面的代码是在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')--DUMPTRANSACTIONMyDBWITHNO_LOGandtruncate_onlyGO--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--===============================--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--===============================--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))--结果:0x0000000A--======================================================================--=================================--CONVERT在日期转换中的使用示例.sql--=================================--字符转换为日期时,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-11--=====================================================================--=============================--SETDATEFORMAT对日期处理的影响.sql--=============================--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./*--说明如果输入