USE master
GO
DECLARE @dbname sysname
SET @dbname='TEST' --Õâ¸öÊÇҪɾ³ýµÄÊý¾Ý¿â¿âÃû
DECLARE @s NVARCHAR(1000)
DECLARE tb CURSOR local FOR
SELECT s='KILL '+CAST(spid AS NVARCHAR)
from master..sysprocesses
WHERE dbid=DB_ID(@dbname)
OPEN tb
FETCH next from tb INTO @s
WHILE @@FETCH_STATUS=0
BEGIN
EXEC(@s)
FETCH next from tb INTO @s
END
CLOSE tb
DEALLOCATE tb
EXEC('DROP DATABASE ['+@dbname+']') ......
½«ÁÐת»»ÎªÐУ¬Ï൱ÓÚ½«±í½á¹¹Ðýת90¶È
T_Student ±í
Stud_ID
Sex
Name
1
ÄÐ
Tom
2
Å®
Anne
3
ÄÐ
Jack
Ö´ÐÐ: Exec proColumnToRow ’T_Student’,’Name’,’ New_ID’
ת»»ºóµÄ±í
New_ID
Tom
Anne
Jack
Stud_ID
1
2
3
Sex
ÄÐ
Å®
ÄÐ
--½«ÁÐת»»ÎªÐÐ
create proc proColumnToRow
@tbname sysname, --Òª´¦ÀíµÄ±íÃû
@fdname sysname, --ijһÁеÄֵת»»ÎªÐ±íµÄÁÐ
@new_fdname sysname='' --½«Ô´±íµÄÁÐת»»ÎªÐÂÁеÄÖµ¡£@new_fdnameΪÐÂÁеÄÁÐÃû
as
declare @s1 varchar(8000) , @s2 varchar(8000),
@s3 varchar(8000) , @s4 varchar(8000),
@s5 varchar(8000) , @i varchar(10)
select
@s1 = '' , @s2 = '' , @s3 = '' , @s4 = '' , @s5 = '' , @i = '0'
select
@s1 = @s1 + ',@' + @i + ' varchar(8000)',
&n ......
±¾ÎÄ´ÓÊý¾Ý¿âÉè¼Æ¡¢¿ª·¢¡¢DBA¹ÜÀíµÈËĸö·½ÃæÐðÊöÁËSQL2005ÓëSQL2000Á½¸ö°æ±¾¼äµÄ¸Ä½ø¡£
¡¡¡¡Ò»¡¢Êý¾Ý¿âÉè¼Æ·½Ãæ
¡¡
¡¡1¡¢×Ö¶ÎÀàÐÍ¡£
¡¡¡¡varchar(max)
varchar(max)ÀàÐ͵ÄÒýÈë´ó´óµÄÌá¸ßÁ˱à³ÌµÄЧÂÊ£¬¿ÉÒÔʹÓÃ×Ö·û´®º¯Êý¶ÔCLOBÀàÐͽøÐвÙ×÷£¬ÕâÊÇÒ»¸öÁÁµã¡£µ«ÊÇÕâ¾ÍÒý·¢Á˶Ôvarchar
ºÍcharЧÂÊÌÖÂÛµÄÀÏÎÊÌâ¡£µ½µ×ÈçºÎ·ÖÅävarcharµÄÊý¾Ý£¬ÊÇ·ñ»á³öÏÖ´ó¹æÄ£µÄË鯬£¿ÊÇ·ñË鯬»áÒý·¢Ð§ÂÊÎÊÌ⣿Õâ¶¼ÊÇÐèÒª½øÒ»²½Ì½ÌֵĶ«Î÷¡£
¡¡
¡¡varbinary(max)´úÌæimageÒ²ÈÃSQL ServerµÄ×Ö¶ÎÀàÐ͸ü¼Ó¼ò½àͳһ¡£
¡¡¡¡XML×Ö¶ÎÀàÐ͸üºÃµÄ½â¾öÁËXML
Êý¾ÝµÄ²Ù×÷¡£XQueryȷʵ²»´í£¬µ«ÊǸöÈË¶ÔÆäûºÃ¸Ð¡££¨CSDNµÄ¿ª·¢ÕßÓ¦¸ÃÊÇÏ൱µÄÊìÁË£¡£©
¡¡¡¡2¡¢Íâ¼üµÄ¼¶Áª¸üÄÜÀ©Õ¹¡£
¡¡
¡¡¿ÉÄܴ󲿷ֵÄͬÐÐÔÚÉè¼ÆOLTPϵͳµÄʱºò¶¼²»Ô¸Ò⽨Á¢Íâ¼ü£¬¶¼ÊÇͨ¹ý³ÌÐòÀ´¿ØÖƸ¸×ÓÊý¾ÝµÄÍêÕûÐÔ¡£µ«ÊÇÔÙ¿ª·¢µ÷ÊԽ׶κÍOLAP»·¾³ÖУ¬Íâ¼üÊÇ¿ÉÒÔ½¨
Á¢µÄ¡£Ð°汾ÖмÓÈëÁËSET NULL ºÍ SET DEFAULT ÊôÐÔ£¬Äܹ»ÌṩÄܺõļ¶ÁªÉèÖá£
¡¡¡¡3¡¢Ë÷Òý¸½¼Ó×ֶΡ£
¡¡
¡¡ÕâÊÇÒ»¸ö²»´íµÄÐÂÌØÐÔ¡£ËäÈ»Ë÷ÒýµÄ¸½¼Ó×Ö¶ÎûÓÐË÷Òý¼üֵЧÂʸߣ¬µ«ÊÇÏà¶ÔÓ³Éäµ½Êý¾Ý±íÖÐЧÂÊ»¹ÊÇÌá¸ßÁ˺ܶࡣÎÒ×ö¹ýÊÔÑ飬ÔÚÎÒµÄʵÑé»·¾³Öл ......
--
> ²âÊÔÊý¾Ý£º[tb]
if
object_id
(
'
[tb]
'
)
is
not
null
drop
table
[
tb
]
go
create
table
[
tb
]
(
[
id
]
int
,
[
lx
]
int
)
insert
[
tb
]
select
29
,
2
union
all
select
30
,
3
union
all
select
31
,
2
union
all
select
32
,
3
union
all
select
33
,
5
SQL 2000
select
identity
(
int
,
1
,
1
)
as
row_number,id, lx
into
#
temp
from
tb ;
select
*
from
#
temp
SQL2005+
select
row_number()
over
(
order
by
id)
as
row_number,id, lx
from
tb
......
ºǫ́Êý¾Ý¿â£º
[Microsoft Access]
Óë
[Microsoft Sql Server]
¸ü»»Ö®ºó£¬ASP´úÂëӦעÒâÒªÐ޸ĵÄһЩµØ·½£º
[Ò»]Á¬½ÓÎÊÌ⣨¾ÙÀý)
[Microsoft Access]
constr = "DBQ=c:\data\clwz.mdb; DRIVER={Microsoft Access Driver (*.mdb)}"
[Microsoft Sql Server]
constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd="
[¶þ]ÏàËÆº¯Êý£¨¾ÙÀý£©
[1]DATEDIFF(datepart, startdate, enddate)
ÆäÖГdatepart”²ÎÊý¿ÉÑ¡ÏîÈçÏ£º
ÉèÖà ÃèÊö
————————————
[Microsoft Access]
Äê yyyy
¼¾¶È q
ÔÂ m
Ò»ÄêµÄÈÕÊý y
ÈÕ d
Ò»ÖܵÄÈÕÊý w
ÖÜ ww
Сʱ h
·ÖÖÓ n
Ãë s
[Microsoft Sql Server]
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
millisecond ms
-------------------------
»ù±¾Éϲ¶à£¬µ«×¢ÒâµÄÊÇÔÚдµÄʱºò£¬
[Microsoft Access]Òª¼ÓÒýºÅ£¬È磺datediff('d',enddate,'2004/08/01')
[Microsoft Sql Server]Ôò²»ÐèÒª£¬È磺d ......
ºǫ́Êý¾Ý¿â£º
[Microsoft Access]
Óë
[Microsoft Sql Server]
¸ü»»Ö®ºó£¬ASP´úÂëӦעÒâÒªÐ޸ĵÄһЩµØ·½£º
[Ò»]Á¬½ÓÎÊÌ⣨¾ÙÀý)
[Microsoft Access]
constr = "DBQ=c:\data\clwz.mdb; DRIVER={Microsoft Access Driver (*.mdb)}"
[Microsoft Sql Server]
constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd="
[¶þ]ÏàËÆº¯Êý£¨¾ÙÀý£©
[1]DATEDIFF(datepart, startdate, enddate)
ÆäÖГdatepart”²ÎÊý¿ÉÑ¡ÏîÈçÏ£º
ÉèÖà ÃèÊö
————————————
[Microsoft Access]
Äê yyyy
¼¾¶È q
ÔÂ m
Ò»ÄêµÄÈÕÊý y
ÈÕ d
Ò»ÖܵÄÈÕÊý w
ÖÜ ww
Сʱ h
·ÖÖÓ n
Ãë s
[Microsoft Sql Server]
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
millisecond ms
-------------------------
»ù±¾Éϲ¶à£¬µ«×¢ÒâµÄÊÇÔÚдµÄʱºò£¬
[Microsoft Access]Òª¼ÓÒýºÅ£¬È磺datediff('d',enddate,'2004/08/01')
[Microsoft Sql Server]Ôò²»ÐèÒª£¬È磺d ......
ºǫ́Êý¾Ý¿â£º
[Microsoft Access]
Óë
[Microsoft Sql Server]
¸ü»»Ö®ºó£¬ASP´úÂëӦעÒâÒªÐ޸ĵÄһЩµØ·½£º
[Ò»]Á¬½ÓÎÊÌ⣨¾ÙÀý)
[Microsoft Access]
constr = "DBQ=c:\data\clwz.mdb; DRIVER={Microsoft Access Driver (*.mdb)}"
[Microsoft Sql Server]
constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd="
[¶þ]ÏàËÆº¯Êý£¨¾ÙÀý£©
[1]DATEDIFF(datepart, startdate, enddate)
ÆäÖГdatepart”²ÎÊý¿ÉÑ¡ÏîÈçÏ£º
ÉèÖà ÃèÊö
————————————
[Microsoft Access]
Äê yyyy
¼¾¶È q
ÔÂ m
Ò»ÄêµÄÈÕÊý y
ÈÕ d
Ò»ÖܵÄÈÕÊý w
ÖÜ ww
Сʱ h
·ÖÖÓ n
Ãë s
[Microsoft Sql Server]
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
millisecond ms
-------------------------
»ù±¾Éϲ¶à£¬µ«×¢ÒâµÄÊÇÔÚдµÄʱºò£¬
[Microsoft Access]Òª¼ÓÒýºÅ£¬È磺datediff('d',enddate,'2004/08/01')
[Microsoft Sql Server]Ôò²»ÐèÒª£¬È磺d ......
ÏÂÃæÌá³öÁË10ÌõºÍDB2 SQLÐÔÄÜÏà¹ØµÄ10ÌõÒòËØ£º
1¡¢ÌṩÊʵ±µÄͳ¼ÆÐÅÏ¢
¶ÔDB2ÓÅ»¯¹ÜÀíÆ÷£¨otimizer£©¶øÑÔ£¬ÈçºÎ¸ü¼ÓÓÐЧµÄÖ´ÐÐSQLÓï¾äÊÇÓÉ´æÔÚÓÚDB2 catalogÖеÄͳ¼ÆÐÅÏ¢¾ö¶¨µÄ£¬ÓÅ»¯Æ÷ÀûÓÃÕâЩÐÅÏ¢¾ö¶¨×îÓÅ»¯µÄ·¾¶¡£
Òò´Ë£¬ÎªÁ˱£³ÖϵͳÄܹ»×ö³ö×î¼ÑÑ¡Ôñ£¬ÐèÒª¾³£µÄÔËÐÐRunstatsÃüÁÀ´±£³Öϵͳͳ¼ÆÐÅÏ¢µÄ¼°Ê±ÓÐЧ¡£ÔÚ¹¤×÷¸ººÉºÜ´óµÄÉú²ú»·¾³ÖУ¬¾³£ÔËÐÐRunstatsÊǺܱØÒªµÄ£¬ÎªÁ˼õÉÙ½øÐÐͳ¼Æ¶Ôϵͳ´øÀ´µÄÓ°Ï죬¿ÉÒÔʹÓÃSampling¼¼Êõ¡£
2¡¢ÔÚSQLÓï¾äÖо¡Á¿Ê¹ÓÃStage 1µÄν´Ê
ÊôÓÚStage 1µÄSQLν´ÊÓÉData Manager´¦Àí£¬¶øÊôÓÚStage 2µÄSQLÓÉRelational Data ServerÖ´ÐС£ÔÚ´¦ÀíЧÂÊÉÏ£¬Data Manager¸üÓÐÓÅÊÆ£¬Òò´Ë£¬Èç¹û¿ÉÄܵϰ¾¡Á¿°ÑSQLÓï¾äд³ÉÄܹ»ÔÚStage 1Ö´Ðеġ£Èç¹ûÄܹ»½áºÏIndexÀ´È·¶¨SQLÓï¾äÖеÄν´Ê£¬ÄÇô½«»á¸ü¼ÓÌá¸ßSQLÖ´ÐеÄЧÂÊ¡£Òò´Ë£¬ÔÚдSQL²éѯÓï¾äµÄʱºò£¬Òª½áºÏIndexµÄ¶¨ÒåÒÔ¼°Î½´ÊÃèдµÄÑ¡Ôñ£¬¾¡¿ÉÄܵÄÈÃSQLÔÚStage 1ÔËÐС£
3¡¢ÔÚSQLÖнöÑ¡ÔñÐèÒªµÄÁÐ
ÔÚSQLÓï¾äÖУ¬½öÖ¸¶¨³ÌÐòÐèÒªµÄÁлáÓÐÀûÓÚÌá¸ßSQLÔËÐеÄÐÔÄÜ¡£Èç¹û²ÉÓÃSelect *ÕâÖÖģʽ£¬½«»á¸ø¿Í»§¶ËµÄÓ¦ÓóÌÐò´øÀ´¶îÍâµÄ´¦Àí¹¤×÷£¬²¢ÐèÒª¸ü¶àµÄÄÚ´æµÈ×ÊÔ´¡£¶Ô·þÎñÆ÷¶Ë¶øÑÔ£¬¶àÓàµÄÁÐÔÚ ......