sqlserver数据库的使用

sqlserver 数据库的使用

sqlserver 分页

|order by uuid offset 1 rows fetch next 4 rows only
identity(1,1)
newid()

ISNULL(check_expression, replacement_value) 非空的判断 check_expression 不为空的值 replacement_value 默认值

创建表

CREATE TABLE [dbo].[fileAccessory] (
[id] INT NOT NULL identity(1,1) ,
[relevanceId] VARCHAR (100) NULL,
[tableName] VARCHAR (100) NULL,
[type] INT NULL,
[preUrl] VARCHAR (500) NULL,
[absolutePath] VARCHAR (500) NULL,
[url] VARCHAR (500) NULL,
[fileName] VARCHAR (400) NULL,
[sorts] INT NULL,
[createTime] datetime2 NULL DEFAULT getDate(),
[updateTime] datetime2 NULL DEFAULT getDate(),
[fileSize] bigint NULL
PRIMARY KEY ([id])
)

给字段加注释

EXECUTE sp_addextendedproperty N'MS_Description', '自增Id', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'id'
EXECUTE sp_addextendedproperty N'MS_Description','关联Id tableName 表Id', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'relevanceId';
EXECUTE sp_addextendedproperty N'MS_Description','表名称', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'tableName';
EXECUTE sp_addextendedproperty N'MS_Description','文件类型:1.doc文件;2.xlsx文件;', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'type';
EXECUTE sp_addextendedproperty N'MS_Description','附件存储路径', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'preUrl';
EXECUTE sp_addextendedproperty N'MS_Description','存储路径', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'absolutePath';
EXECUTE sp_addextendedproperty N'MS_Description','附件访问路径', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'url';
EXECUTE sp_addextendedproperty N'MS_Description','附件名称', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'fileName';
EXECUTE sp_addextendedproperty N'MS_Description','排序字段', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'sorts';
EXECUTE sp_addextendedproperty N'MS_Description','文件大小', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'fileSize';
EXECUTE sp_addextendedproperty N'MS_Description','创建时间', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'createTime';
EXECUTE sp_addextendedproperty N'MS_Description','更新时间', N'user', N'dbo', N'table', N'fileAccessory', N'column', N'updateTime';

修改字段注释

execute sp_updateextendedproperty 'MS_Description', '自增Id,自增范围1','user','dbo','table','fileAccessory','column','id';

删除字段描述

execute sp_dropextendedproperty 'MS_Description','user','dbo','table','fileAccessory','column','id';

添加表注释

EXECUTE sp_addextendedproperty N'MS_Description', '附件上传表', N'user', N'dbo', N'table', N'fileAccessory', NULL, NULL

删除表注释

execute sp_dropextendedproperty 'MS_Description','user','dbo','table','fileAccessory',null,null;

修改表注释

execute sp_updateextendedproperty 'MS_Description','修改表注释','user','dbo','table','fileAccessory',null,null;

没有测试

删除主键

alter table 表名 drop constraint 主键名

添加主键

alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)

添加非聚集索引的主键

alter table 表名 add constraint 主键名 primary key NONCLUSTERED(字段名1,字段名2……)

删除表:

Drop table [表名]

删除所有表:

DECLARE curItems CURSOR
FOR select [name] from sysobjects where xtype='U'
FOR READ ONLY
OPEN curItems
DECLARE @n NVARCHAR(100),@m NVARCHAR(100)
FETCH FROM curItems INTO @n
WHILE @@FETCH_STATUS=0
BEGIN
set @m=@n
exec('Drop Table ' + @m)
FETCH NEXT FROM curItems INTO
@n
END
CLOSE curItems
DEALLOCATE curItems

插入数据:

INSERT INTO [表名] (字段1,字段2) VALUES (100,'51WINDOWS.NET');

删除数据:

DELETE FROM [表名] WHERE [字段名]>100

更新数据:

UPDATE [表名] SET [字段1] = 200,[字段2] = '51WINDOWS.Net' WHERE [字段三] = 'HAIWA'

新增字段:

ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

删除字段:

ALTER TABLE [表名] DROP COLUMN [字段名]

修改字段:

ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL

重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表)

sp_rename '表名', '新表名', 'OBJECT'

新建约束:

ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= '2000-1-1')

删除约束:

ALTER TABLE [表名] DROP CONSTRAINT 约束名

新建默认值

ALTER TABLE [fileAccessory] ADD CONSTRAINT fileSize_default DEFAULT 0 FOR [fileSize]

删除默认值

ALTER TABLE [表名] DROP CONSTRAINT 默认值名

删除Sql Server 中的日志,减小数据库文件大小

dump transaction 数据库名 with no_log
backup log 数据库名 with no_log
dbcc shrinkdatabase(数据库名)
exec sp_dboption '数据库名', 'autoshrink', 'true'

添加字段通用函数

Sub AddColumn(TableName,ColumnName,ColumnType)
Conn.Execute("Alter Table "&TableName&" Add "&ColumnName&" "&ColumnType&"")
End Sub

更改字段通用函数

Sub ModColumn(TableName,ColumnName,ColumnType)
Conn.Execute("Alter Table "&TableName&" Alter Column "&ColumnName&" "&ColumnType&"")
End Sub

检查表是否存在

sql="select count(*) as dida from sysobjects where id = object_id(N'[所有者].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1"
set rs=conn.execute(sql)

返回一个数值,0代表没有,1代表存在

response.write rs("dida")

判断表的存在:

select * from sysobjects where id = object_id(N'[dbo].[tablename]') and OBJECTPROPERTY(id, N'IsUserTable') = 1

某个表的结构

select * from syscolumns where id = object_id(N'[dbo].[你的表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1

修改表的前缀:

ALTER SCHEMA dbo TRANSFER prename.tablename;

如果表2已经存在,把表1中的记录加到表2中的语句:

insert into 表2 (字段1,字段2,...) select 字段1,字段2,.. from 表2 where

如果表2不存在,则用下面的语句会自动生成表2,字段的类型和表1一样:

select 字段1,字段2,.. INTO 表2 from 表1 where 

你可能感兴趣的:(sqlserver数据库的使用)