Sql Server语法

来源:互联网 发布:猫吃老鼠会得病吗 知乎 编辑:程序博客网 时间:2024/05/16 15:57

----创建数据库
Create DATABASE database-name

----删除数据库
drop database dbname

----备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack',

'c:/mssql7backup/MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack

---创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2

[not null],..)
---根据已有的表创建新表:
create table tab_new like tab_old ---(使用旧表创建新表)
create table tab_new as select col1,col2… from tab_old definition

---删除新表
drop table tabname
---增加一个列
Alter table tabname add column col type
---------列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变是增加varchar类型的长度。

---添加主键: Alter table tabname add primary key(col)
---删除主键: Alter table tabname drop primary key(col)

---创建索引:create [unique] index idxname on tabname(col….)
---删除索引:drop index idxname
---索引是不可更改的,想更改必须删除重新建。

---创建视图:create view viewname as select statement
---删除视图:drop view viewname

---几个简单的基本的sql语句
--选择:
select * from table1 where 范围
--插入:
insert into table1(field1,field2) values(value1,value2)
--删除:
delete from table1 where 范围
--更新:
update table1 set field1=value1 where 范围
--查找:
select * from table1 where field1 like ’%value1%’ ---like的语

--排序:
select * from table1 order by field1,field2 [desc]
--总数:
select count as totalcount from table1
--求和:
select sum(field1) as sumvalue from table1
--平均:
select avg(field1) as avgvalue from table1
--最大:
select max(field1) as maxvalue from table1
--最小:
select min(field1) as minvalue from table1

--随机查询数据
select newid()
---查询所有表
select name from sysobjects where type='u'
--查询表中有几个列
select name from syscolumns where id=object_id('transinfo')
--初始化表
truncate table test
---压缩数据库
dbcc shrinkdatabase('testssh')
--转移数据库给新用户以已存在用户权限
exec sp_change_users_login 'update_one','whb','sa'
go
--检查备份集
RESTORE VERIFYONLY from disk='E:/dvbbs.bak'
---日志清除
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT

----SQL SERVER中直接循环写入数据
declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end
---存储更改全部表
Create PROCEDURE dbo.User_ChangeObjectOwnerBatch
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
AS

DECLARE @Name as NVARCHAR(128)
DECLARE @Owner as NVARCHAR(128)
DECLARE @OwnerName as NVARCHAR(128)

DECLARE curObject CURSOR FOR
select 'Name' = name,
'Owner' = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name

OPEN curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
end
-- select @name,@NewOwner,@OldOwner

FETCH NEXT FROM curObject INTO @Name, @Owner
END

close curObject
deallocate curObject
GO

原创粉丝点击