SQL SERVERÐÔÄÜÓÅ»¯ ·ÖÇø±í
±¾ÎÄÑÝʾÁË SQL Server 2008 ·ÖÇø±íʵÀý;
1. ´´½¨²âÊÔÊý¾Ý¿â £»
2. ´´½¨·ÖÇøº¯Êý;
3. ´´½¨·ÖÇø¼Ü¹¹;
4. ´´½¨·ÖÇø±í;
5. ´´½¨·ÖÇøË÷Òý ;
6. ·ÖÇøÇл» ;
7. ²éѯÄÄЩ±íʹÓÃÁË·ÖÇø±í£»
-- ×÷³ÉÕß leno
-- ÈÕÆÚ: 2009-06-06 23:50:01.700
-- ´´½¨²âÊÔÊý¾Ý¿â
USE master
GO
IF OBJECT_ID(N'PartitionDataDB') IS NOT NULL
DROP DATABASE PartitionDataDB
GO
CREATE DATABASE PartitionDataDB
ON PRIMARY
(
NAME = N'File_A_H',
FILENAME ='D:\Microsoft\Microsoft SQL Server 2008\MSSQL10.MSSQLSERVER\MSSQL\DATA\PartitionDataDB_AH.mdf'
),
FILEGROUP FileGroup_I_N
(
NAME = N'File_I_N',
FILENAME ='D:\Microsoft\Microsoft SQL Server 2008\MSSQL10.MSSQLSERVER\MSSQL\DATA\PartitionDataDB_IN.mdf'
),
FILEGROUP FileGroup_M_Z
(
NAME = N'File_M_Z',
FILENAME ='D:\Microsoft\Microsoft SQL Server 2008\MSSQL10.MSSQLSERVER\MSSQL\DATA\PartitionDataDB_MZ.mdf'
)
GO
-- ´´½¨·ÖÇøº¯Êý
USE PartitionDataBase;
GO
CREATE PARTITION FUNCTION StaffNameRangePFN(varchar(100))
AS
RANGE LEFT FOR VALUES ('H','M')
GO
-- ´´½¨·ÖÇø¼Ü¹¹
CREATE PARTITION SCHEME StaffNamePScheme
AS
PARTITION StaffNameRangePFN
TO ([PRIMARY], FileGroup_I_N, FileGorup_M_Z)
GO
-- ´´½¨·ÖÇø±í
CREATE TABLE [dbo].[Staff]
(
[StaffName] [varchar](100) NOT NULL
)
ON StaffNamePScheme ([StaffName])
GO
-- ²åÈë²âÊÔÊý¾Ý1
INSERT INTO [dbo].[Staff]
SELECT FirstName from AdventureWorks.Person.Contact
-- ²é¿´½á¹û
SELECT
$partition.StaffNameRangePFN(StaffName) AS [Partition Number],
MIN(StaffName) AS [Min StaffName],
MAX(StaffName) AS [Max StaffName],
COUNT(StaffName) AS [Rows In Partition]
from dbo.staff AS o
GROUP BY $partition.StaffNameRangePFN(StaffName)
ORDER BY [Partition Number]
/*
1 Abigail Guy 364
2 Hannah Lynn 241
3 Maggie Yvette 395
*/
-- ²åÈë²âÊÔÊý¾Ý2
INSERT INTO [dbo].[Staff]
SELECT AddressLine1 from AdventureWorks.Person.Address
-
Ïà¹ØÎĵµ£º
2010-05-05 13:35:52.06 Server Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-2005 Microsoft Corporation
Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
2010-05-05 13:35:52.06 Server (c) 2005 Microsoft Corporation.
201 ......
if not object_id('Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
G ......
ÓÐʱÎÒÃÇ»áÏñÏÂÃæµÄÇé¿öÒ»Ñù£¬ÎªÖ÷±íµÄıһÌõ¼Ç¼£¬ÔÚÖмä±í(T_Stud_Course ±í)ÖÐͬʱ²åÈë¶àÌõÊý¾Ý
T_Student ±í
Stud_ID
Name
1
Tom
2
Jack
T_Course ±í
Course_ID
Course
1
Chinese
2
English
T_Stud_Course ±í
ID
Stud_ID
Course_ID
1
1
1
2
1
2
3
2
2
ÏÖÔÚÎÒÃÇ¿ÉÒÔÏÂÃæµÄ´æ´¢¹ý³ÌÀ ......
ÏÂÔØµØÖ·£ºhttp://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=19353
ÎÒÏÂÔØµÄÊÇSQL2008.AdventureWorks_All_Databases.x86.msi£¬±¾²»ÏëÏÂÔØÕâÖÖ°²×°Îļþ£¬µ«½Å±¾Îļþ×ÜÊÇÖ´Ðгö´í£¬ÔÒòû¾ßÌåÉ¡£ÕâÖÖ°²×°Îļþ°²×°ºó»á´´½¨Áù¸ö¿âAdventureWorks¡¢AdventureWorks2008¡¢AdventureWorksDW¡¢Ad ......
¶¨ÒåºÍÓ÷¨
DATEDIFF() º¯Êý·µ»ØÁ½¸öÈÕÆÚÖ®¼äµÄÌìÊý¡£
Óï·¨
DATEDIFF(datepart,startdate,enddate)
startdate ºÍ enddate ²ÎÊýÊǺϷ¨µÄÈÕÆÚ±í´ïʽ¡£
datepart ²ÎÊý¿ÉÒÔÊÇÏÂÁеÄÖµ£º
datepart
Ëõд
Äê
yy, yyyy
¼¾¶È
qq, q
ÔÂ
mm, m
ÄêÖеÄÈÕ
dy, y
ÈÕ
dd, d
ÖÜ
wk, ww
ÐÇÆÚ
dw, w
Сʱ
h ......