学习数据库知识之SQL操作标记

豆豆网   技术应用频道   2007年09月17日  【字号: 收藏本文

内容摘要:本文介绍学习数据库知识之SQL操作标记

  创建某一个表:

CREATETABLE[weekyc](
  [yc_product][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
  [yc_max][numeric](18,0)NULL,
  [yc_min][numeric](18,0)NULL,
  [yc_situation][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
  [yc_time][datetime]NULL,
  [id][numeric](18,0)IDENTITY(1,1)NOTNULL,
  [Authority][int]NOTNULLCONSTRAINT[DF_weekyc_Authority]DEFAULT(3),
  [remark][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO

  修改某一个表:

altertableweekycaddyc_max numeric(18,0) null
ALTERTABLE[weekyc]ADD DEFAULT'0'FOR[yc_max]

  删除一个约束:

declare@namevarchar(8000)
select@name=b.namefromsyscolumnsa,sysobjectsbwherea.id=object_id('weekyc')andb.id=a.cdefaultand
 a.name='yc_max'andb.namelike'DF%'
exec('altertableweekycdropconstraint'+@name)
  
ifnotexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[tablespaceinfo]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
createtabletablespaceinfo--创建结果存储表
(nameinfovarchar(50),
rowsinfoint,reservedvarchar(20),
datainfovarchar(20),
index_sizevarchar(20),
unusedvarchar(20))
deletefromtablespaceinfo--清空数据表
declare@tablenamevarchar(255)--表名称
declare@cmdsqlvarchar(500)
DECLAREInfo_cursorCURSORFOR
selecto.name
fromdbo.sysobjectsowhereOBJECTPROPERTY(o.id,N'IsTable')=1
ando.namenotlikeN'#%%'orderbyo.name
OPENInfo_cursor
FETCHNEXTFROMInfo_cursor
INTO@tablename
WHILE@@FETCH_STATUS=0
BEGIN
ifexists(select*fromdbo.sysobjectswhereid=object_id(@tablename)andOBJECTPROPERTY(id,N'IsUserTable')=1)
executesp_executesql
N'insertintotablespaceinfoexecsp_spaceused@tbname',
N'@tbnamevarchar(255)',
@tbname=@tablename
FETCHNEXTFROMInfo_cursor
INTO@tablename
END
CLOSEInfo_cursor
DEALLOCATEInfo_cursor
GO

  数据库执行进程:sp_cmdshell

  查询/修改/删除中影响的列:

  RowCount

  删除表中的重复数据:

  (假设ID是Identity列,Title相同者将被删除)

  deletefromTableNamewhereidnotin(selectmax(id)fromTableName groupbyTitle)

  查看表信息:

  select*fromtablespaceinfo

  清空数据库:

  truncatetableXX;

  查看某库下面每个表占用的空间信息:

useXXDB;
selectobject_name(id)tablename,8*reserved/1024reserved,rtrim(8*dpages/1024)+'Mb'used,8*(reserved-dpages)/1024unused,8*dpages/1024-rows/1024*minlen/1024free,
rows,*fromsysindexes
whereindid=1
orderbyreserveddesc
sp_helptextXX;这是查看源码。

  查看数据库进程sp_who;或者sp_who2更加详细;

  绑定默认值sp_binddefaultxx;或者altertablexxadddefaultxxfor列;

  修改数据库名称,修改表名称,修改存储过程名称,修改视图名称:sp_rename老的名字,新的名字

  一个比较复杂的:DBCC,具体怎么用,太多了。

  有些用处,平时用的。

责编:豆豆技术应用

正在加载评论...