SQLserver基本脚本语句 (整理)
来源:互联网 发布:淘宝前100名半价可信吗 编辑:程序博客网 时间:2024/05/22 14:52
SQLserver基本脚本语句
数据库中表的操作:
检查表stuInfo是否存在:
USE stuDB--设置当前数据库为stuDB
GO
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'stuInfo')
删除表stuInfo:
DROP TABLE stuInfo
GO
创建表stuInfo:
CREATE TABLE stuInfo/*--创建学员表--*/
(
stuName VARCHAR(20) NOT NULL,--非空
stuNo CHAR(6) NOT NULL,--定长
stuAge INT NOT NULL,
stuID NUMERIC(18,0),--18位数字 小数位为0
stuSeat SMALLINT IDENTITY(1,1),--自增列
stuAddress TEXT
)
GO
约束的类型:
主键约束:Primary Key constraint
唯一约束:Unique Constraint
检查约束:Check Constraint 范围格式限制
默认约束:Default Constraint
外键约束:Foreign Key Constraint
添加约束格式:
ALTER TABLE 表名
ADD CONSTRAINT 约束名 约束类型 具体约束说明
--添加主键约束
ALTER TABLE stuInfo
ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)
--添加唯一约束
ALTER TABLE stuInfo
ADD CONSTRAINT UQ_stuID UNIQUE (stuID)
--添加默认约束
ALTER TABLE stuInfo
ADD CONSTRAINT DF_stuAddress
DEFAULT ('地址不详') FOR stuAddress
--添加检查约束
ALTER TABLE stuInfo
ADD CONSTRAINT CK_stuAge
CHECK(stuAge BETWEEN 15 AND 40)
--添加外键约束
ALTER TABLE stuMarks
ADD CONSTRAINT FK_stuNo
FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo)
GO
删除约束:
ALTER TABLE 表名
DROP CONSTRAINT 约束名
例如:
ALTER TABLE stu_DB
DROP CONSTRAINT DF_stuAddress
表中数据的操作:
1.添加数据
INSERT INTO user (id,name,pwd,age) VALUES (22,'张三',‘123’,22)
2.修改数据
UPDATE user SET pwd = '456' WHERE name = '张三'
3.查询数据(排序ORDER BY "栏位一" [ASC, DESC], "栏位二" [ASC, DESC] )
SELECT name,pwd FROM user WHERE age<25 ORDER BY age
4.删除数据
DELETE FROM user WHERE age = 20
数据库的操作:
检查数据库是否存在:
USE master--设置当前数据库为master
GO
IF EXISTS (SELECT * FROM sysdatabases WHERE name="stuDB")
删除数据库:
DROP DATABASE stuDB
GO
创建数据库:
CREATE DATABASE stuDB
ON(
/*--数据文件的具体描述--*/
NAME = 'stuDB_data',--主数据文件的逻辑名字
FILENAME = 'D:\project\stuDB_data.mdf',--主数据库的物理名字
SIZE = 5mb,--主数据文件的初始大小
MAXSIZE = 100mb,--主数据文件增长的最大值
FILEGROWTH = 15%--主数据文件的增长率
)
LOG ON
(
/*--日志文件的具体描述--*/
NAME = 'stuDB_log',
FILENAME = 'D:\project\stuDB_log.ldf)',
SIZE=2mb,
FILEGROWTH=1mb
)
GO
--系统存储过程?
--1.给表中字段添加描述信息
Create table T2 (id int , name char (20))
GO
EXEC sp_addextendedproperty 'MS_Description', 'Employee ID', 'user', dbo, 'table', T2, 'column', id
EXEC sp_updateextendedproperty 'MS_Description', 'this is a test', 'user', dbo, 'table', T2, 'column', id
--2.修改数据库名称
EXEC sp_renamedb 'old_db_name', 'new_db_name'
--3.修改数据表名称和字段名称
EXEC sp_rename 'old_table_name', 'new_table_name'--修改数据表名称
EXEC sp_rename 'table_name.[old_column_name]', 'new_column_name', 'COLUMN'--修改字段名称
--4.给定存储过程名,获取存储过程内容
exec sp_helptext sp_name
--创建新的 SQL Server 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server。
EXEC sp_addlogin @loginame = '', @passwd = '', @defdb = '', @deflanguage = NULL, @sid = NULL, @encryptopt = NULL
--使 Windows NT 用户或组帐户得以使用 Windows 身份验证连接到 SQL Server。
EXEC sp_grantlogin @loginame = ''
--删除 SQL Server 登录,以阻止使用该登录名访问 SQL Server。
EXEC sp_droplogin @loginame = ''
--阻止 Windows NT 用户或组连接到 SQL Server。
EXEC sp_denylogin @loginame = ''
--从 SQL Server 中删除用 sp_grantlogin 或 sp_denylogin 创建的 Windows NT 用户或组的登录项。
EXEC sp_revokelogin @loginame = ''
--更改登录的默认数据库。
EXEC sp_defaultdb @loginame = '', @defdb = ''
--更改登录的默认语言。
EXEC sp_defaultlanguage @loginame = '', @language = ''
--添加或更改 SQL Server 登录密码。
EXEC sp_password @old = '', @new = '', @loginame = ''
--添加服务器角色新成员。
EXEC sp_addsrvrolemember @loginame = '', @rolename = ''
--添加服务器角色某成员。
EXEC sp_dropsrvrolemember @loginame = '' , @rolename = ''
--为 SQL Server 登录或 Windows NT 用户或组在当前数据库中添加一个安全帐户,并使其能够被授予在数据库中执行活动的权限(授予默认的“public”数据库角色)。
EXEC sp_grantdbaccess @loginame = '', @name_in_db = NULL
--或
EXEC sp_adduser @loginame = '', @name_in_db = NULL, @grpname = ''
--从当前数据库中删除安全帐户。
EXEC sp_revokedbaccess @name_in_db = ''
--或
EXEC sp_dropuser @name_in_db = ''
--在当前数据库创建新数据库角色。
EXEC sp_addrole @rolename = '', @ownername = ''
--在当前数据库删除某数据库角色。
EXEC sp_droprole @rolename = ''
--在当前数据库中添加数据库角色新成员。
EXEC sp_addrolemember @rolename = '', @membername = ''
--在当前数据库中删除数据库角色某成员。
EXEC sp_droprolemember @rolename = '', @membername = ''
--权限分配给数据库角色、表、存储过程等对象
--1、授权访问
GRANT
--2、拒绝访问
DENY
--3、取消授权或拒绝
REVOKE
--4、Sample(pubs):
GRANT SELECT ON authors TO Limperator
DENY SELECT ON authors TO Limperator
REVOKE SELECT ON authors TO Limperator
--http://blog.csdn.net/fredrickhu/archive/2009/10/28/4740546.aspx
1、查询SQL中的所有表:
Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称
2、查询SQL中所有表及列:
Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties'))
3、在Sql查询分析器,还有一个简单的查询方法:
EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 执行完之后,就可以看到数据库中所有用户表的信息
4、查询总存储过程数:
select count(*) 总存储过程数 from sysobjects where xtype='p'
XTYPE 有以下几种类型。
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程
1.获取表的基本字段属性
SELECT syscolumns.name,systypes.name,syscolumns.isnullable,
syscolumns.length
FROM syscolumns, systypes
WHERE syscolumns.xusertype = systypes.xusertype
AND syscolumns.id = object_id('你的表名')
2.如果还想要获取字段的描述信息则
declare @table_name as varchar(max)
set @table_name = '你的表名'
select sys.columns.name, sys.types.name, sys.columns.max_length, sys.columns.is_nullable,
(select count(*) from sys.identity_columns where sys.identity_columns.object_id = sys.columns.object_id and sys.columns.column_id = sys.identity_columns.column_id) as is_identity ,
(select value from sys.extended_properties where sys.extended_properties.major_id = sys.columns.object_id and sys.extended_properties.minor_id = sys.columns.column_id) as description
from sys.columns, sys.tables, sys.types where sys.columns.object_id = sys.tables.object_id and sys.columns.system_type_id=sys.types.system_type_id and sys.tables.name=@table_name order by sys.columns.column_id
3.单独查询表的递增字段
select [name] from syscolumns where
id=object_id(N'你的表名') and COLUMNPROPERTY(id,name,'IsIdentity')=1
4.获取表的主外键
exec sp_helpconstraint '你的表名' ;
- SQLserver基本脚本语句 (整理)
- SqlServer常用语句整理(后续更新)
- SQLSERVER基本操作语句
- sql基本语句整理
- sql基本语句整理
- 基本SQLServer语句献给初学者
- sqlserver数据库基本语句集合
- MySql 基本操作语句整理
- SQL基本使用语句整理
- sqlserver 动态sql语句基本语法
- SqlServer 与 MySQL 基本操作语句对比
- linq操作sqlserver数据库基本语句
- 小白福利!!!!sqlserver的基本语句。。。
- 个人整理的sql基本语句(不全)
- [SQL]常用的MySQL基本语句(整理中)
- SqlServer 常用系统表整理及DDL语句整理
- sqlserver迁移到oracle时的语句变更(整理自网络)
- SqlServer 基本表操作和基本查询语句
- JPA JPQL 查询、排序
- 6,7,8 ICMP协议,ping和Traceroute
- [性能调整] 关于Oracle连接超时的问题(WARNING: inbound connection timed out (ORA-3136)连接超时问题)
- ssh集成步骤1
- C++ 模版中的一些稀奇古怪的技巧
- SQLserver基本脚本语句 (整理)
- BIT寒假练习-2013__1008:Putting Apples
- ssh集成2
- (EditText)This text field does not specify an inputType or a hint
- JQuery 发送Json格式数据
- 跟我一起写 Makefile
- Oreacle 11g IMPDP/EXPDP 参数使用小记
- activeMQ,spring的jmstemplate简单例子
- 转载_LPC2000系列ARM处理器重映射原理的分析与实现