随笔 - 45, 文章 - 2, 评论 - 11, 引用 - 0
数据加载中……

sqlserver 基础

  1 --创建表
  2     if exists(select * from sysobjects where name='user' and type='U'drop table [user] ;
  3     create table [user](
  4     id int identity(1,1) , --自增字段
  5     name varchar(50) ,
  6     pwd varchar(50) ,
  7     constraint pk_user_id primary key(id) --主键
  8     --constraint pk_user_id primary key(id,[name])
  9     );
 10 
 11 -- 变量的声明,sql里面声明变量时必须在变量前加@符号
 12     DECLARE @I INT
 13 
 14 -- 变量的赋值,变量赋值时变量前必须加set
 15     SET @I = 30
 16 
 17 -- 声明多个变量
 18     DECLARE @s varchar(10),@a INT
 19 
 20 -- Sql 里if语句
 21     IF 条件 BEGIN
 22         执行语句
 23     END
 24     ELSE BEGIN
 25         执行语句
 26     END
 27             
 28     DECLARE @d INT
 29     set @d = 1
 30 
 31     IF @d = 1 BEGIN
 32 
 33     -- 打印
 34         PRINT '正确'
 35     END
 36     ELSE BEGIN
 37         PRINT '错误'
 38     END
 39 
 40 
 41 -- Sql 里的多条件选择语句.
 42     DECLARE @iRet INT@PKDisp VARCHAR(20)
 43     SET @iRet = 1
 44     Select @iRet =
 45     CASE
 46         WHEN @PKDisp = '' THEN 1
 47         WHEN @PKDisp = '' THEN 2
 48         WHEN @PKDisp = '' THEN 3
 49         WHEN @PKDisp = '' THEN 4
 50         WHEN @PKDisp = '' THEN 5
 51         ELSE 100
 52     END
 53 
 54 -- 循环语句
 55     WHILE 条件 BEGIN    
 56         执行语句
 57     END
 58 
 59     DECLARE @i INT
 60     SET @i = 1
 61     WHILE @i<1000000 BEGIN
 62         set @i=@i+1
 63     END
 64     -- 打印
 65     PRINT @i
 66 
 67 
 68 -- TRUNCATE 删除表中的所有行,而不记录单个行删除操作,不能带条件
 69 
 70     /*
 71     TRUNCATE TABLE 在功能上与不带 Where 子句的 Delete 语句相同:二者均删除表中的全部行
 72 
 73 。但 TRUNCATE TABLE 比 Delete 速度快,且使用的系统和事务日志资源少。
 74     Delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过
 75 
 76 释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
 77     TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用
 78 
 79 的计数值重置为该列的种子。如果想保留标识计数值,请改用 Delete。如果要删除表定义及其数据,请
 80 
 81 使用 Drop TABLE 语句。
 82     对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 Where 子句的
 83 
 84 Delete 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
 85     TRUNCATE TABLE 不能用于参与了索引视图的表。
 86     示例
 87         下例删除 authors 表中的所有数据。*/
 88         
 89         TRUNCATE TABLE authors
 90                 
 91 
 92 -- Select INTO 从一个查询的计算结果中创建一个新表。 数据并不返回给客户端,这一点和普通的
 93 -- Select 不同。 新表的字段具有和 Select 的输出字段相关联(相同)的名字和数据类型。
 94         
 95         select * into NewTable
 96             from Uname
 97 
 98 
 99 -- Insert INTO Select
100         -- 表ABC必须存在
101         -- 把表Uname里面的字段Username复制到表ABC
102         Insert INTO ABC Select Username FROM Uname
103 
104 -- 创建临时表
105         Create TABLE #temp(
106             UID int identity(11PRIMARY KEY,
107             UserName varchar(16),
108             Pwd varchar(50),
109             Age smallint,
110             Sex varchar(6)
111         )
112         -- 打开临时表
113         Select * from #temp
114 
115 -- 存储过程
116         -- 要创建存储过程的数据库
117         Use Test
118         -- 判断要创建的存储过程名是否存在
119             if Exists(Select name From sysobjects Where name='csp_AddInfo' And
120 
121 type='P')
122             -- 删除存储过程
123             Drop Procedure dbo.csp_AddInfo
124         Go
125                 
126                 
127         -- 创建存储过程
128         Create Proc dbo.csp_AddInfo
129         -- 存储过程参数
130         @UserName varchar(16),
131         @Pwd varchar(50),
132         @Age smallint,
133         @Sex varchar(6)
134         AS
135         -- 存储过程语句体
136         insert into Uname (UserName,Pwd,Age,Sex)
137             values (@UserName,@Pwd,@Age,@Sex)
138         RETURN
139         -- 执行
140         GO
141                 
142         -- 执行存储过程
143         EXEC csp_AddInfo 'Junn.A','123456',20,'';
144 修改自:http://blog.csdn.net/mx1029/archive/2007/07/06/1680910.aspx

posted on 2011-03-25 16:31 jack zhai 阅读(196) 评论(0)  编辑  收藏 所属分类: 数据库Sql Server


只有注册用户登录后才能发表评论。


网站导航: