当前位置:  数据库>sqlserver
本页文章导读:
    ▪没有共享存储和仲裁盘的SQL Server 2012HADR故障手动切换TSQL      ---恢复内容开始---没有共享存储和仲裁盘的SQL Server 2012HADR故障手动切换TSQL因为一些原因有些SQLSERVER集群中没有配置仲裁盘,只有一主一辅两个实例。配置如下:USE [master] GO CREATE AVAILABILITY GROU.........
    ▪SQL 综合应用(1.创建临时表,为后续查询所用) 实例_(学生,课程表,选修表)      一.需要分析查询各班各门课程的考试人数和及格人数,要求将查询结果显示在同一个表中,包括班级,课程号,考试人数和及格人数二.实现步骤--1.创建临时表 "#考试人数"create table #考试人数(班级 .........
    ▪SQLSERVER改变已有数据表中的列      SQLSERVER改变已有数据表中的列包括改变字段的位置,增加列,更改列名称,更改列数据类型,列长度,增加标识列,增加主键,约束上面这些在做数据库升级或者迁移的时候很多时候都要用到.........

[1]没有共享存储和仲裁盘的SQL Server 2012HADR故障手动切换TSQL
    来源:    发布时间: 2013-11-15

---恢复内容开始---

没有共享存储和仲裁盘的SQL Server 2012HADR故障手动切换TSQL

因为一些原因有些SQLSERVER集群中没有配置仲裁盘,只有一主一辅两个实例。

配置如下:

USE [master] GO CREATE AVAILABILITY GROUP [ak51DB] WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY) FOR DATABASE [ak51Activity],[ak51Load] REPLICA ON N'ak51-DB35' WITH (ENDPOINT_URL = N'TCP://ak51-DB35.580top.com:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, SESSION_TIMEOUT = 10, BACKUP_PRIORITY = 100, PRIMARY_ROLE(ALLOW_CONNECTIONS = ALL), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)), N'ak51-DB36' WITH (ENDPOINT_URL = N'TCP://ak51-DB36.580top.com:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SESSION_TIMEOUT = 10, BACKUP_PRIORITY = 50, PRIMARY_ROLE(ALLOW_CONNECTIONS = ALL), SECONDARY_ROLE(ALLOW_CONNECTIONS = NO)); GO

这时候是不具备SQL Server 2012 Always on的自动故障转移条件的 但是它万一出现主机故障时,需要手动强起辅机的 脚本很简单:

ALTER AVAILABILITY GROUP [ak51db] FORCE_FAILOVER_ALLOW_DATA_LOSS;

需要注意的是:如果是异步提交,强起辅机可能会有数据丢失

 

当主机重新连线时,再切回来后,会发现高可用性组处于“未同步"状态

这时候需要运行TSQL重新恢复可用性组:

ALTER DATABASE [ak51Load] SET HADR RESUME; ALTER DATABASE [ak51Activity] SET HADR RESUME;

至于我为什么不选用高可用性侦听组和仲裁盘的原因,这里很复杂。。。

原文:http://www.580top.com/html/201303/dba_2129.htm

---恢复内容结束---

---恢复内容开始---

没有共享存储和仲裁盘的SQL Server 2012HADR故障手动切换TSQL

因为一些原因有些SQLSERVER集群中没有配置仲裁盘,只有一主一辅两个实例。

配置如下:

USE [master] GO CREATE AVAILABILITY GROUP [ak51DB] WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY) FOR DATABASE [ak51Activity],[ak51Load] REPLICA ON N'ak51-DB35' WITH (ENDPOINT_URL = N'TCP://ak51-DB35.580top.com:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, SESSION_TIMEOUT = 10, BACKUP_PRIORITY = 100, PRIMARY_ROLE(ALLOW_CONNECTIONS = ALL), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)), N'ak51-DB36' WITH (ENDPOINT_URL = N'TCP://ak51-DB36.580top.com:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SESSION_TIMEOUT = 10, BACKUP_PRIORITY = 50, PRIMARY_ROLE(ALLOW_CONNECTIONS = ALL), SECONDARY_ROLE(ALLOW_CONNECTIONS = NO)); GO

这时候是不具备SQL Server 2012 Always on的自动故障转移条件的 但是它万一出现主机故障时,需要手动强起辅机的 脚本很简单:

ALTER AVAILABILITY GROUP [ak51db] FORCE_FAILOVER_ALLOW_DATA_LOSS;

需要注意的是:如果是异步提交,强起辅机可能会有数据丢失

 

当主机重新连线时,再切回来后,会发现高可用性组处于“未同步"状态

这时候需要运行TSQL重新恢复可用性组:

ALTER DATABASE [ak51Load] SET HADR RESUME; ALTER DATABASE [ak51Activity] SET HADR RESUME;

至于我为什么不选用高可用性侦听组和仲裁盘的原因,这里很复杂。。。

原文:http://www.580top.com/html/201303/dba_2129.htm

---恢复内容结束---

本文链接


    
[2]SQL 综合应用(1.创建临时表,为后续查询所用) 实例_(学生,课程表,选修表)
    来源:    发布时间: 2013-11-15

一.需要分析

查询各班各门课程的考试人数和及格人数,要求将查询结果显示在同一个表中,包括班级,课程号,考试人数和及格人数

二.实现步骤

--1.创建临时表 "#考试人数"
create table #考试人数(
班级 char(20),
课程号 char(3),
考试人数 int
)
--2.查询各班各门课程的考试人数,并保存在临时表"#考试人数"中
insert into #考试人数
select 班级,课程号,COUNT(选修.学号) as 考试人数
from 学生 inner join 选修 on 学生.学号=选修.学号
group by 班级,课程号
--3.创建临时表"#及格人数"
create table #及格人数(
班级 char(20),
课程号 char(3),
及格人数 int
)
--4.查询各班各门课程的及格人数,并保存在临时表"#及格人数"中
insert into #及格人数
select 班级,课程号,COUNT(选修.学号) as 及格人数
from 学生 inner join 选修 on 学生.学号=选修.学号
where 成绩>60
group by 班级,课程号
--5.将两个临时表进行左连接,得出最后的查询结果
select #考试人数.班级,#考试人数.课程号,考试人数,及格人数
from #考试人数 left join #及格人数 on #考试人数.班级=#及格人数.班级 and #考试人数.课程号=#及格人数.课程号

三.查询结果如图所示

本文链接


    
[3]SQLSERVER改变已有数据表中的列
    来源:    发布时间: 2013-11-15
SQLSERVER改变已有数据表中的列

包括改变字段的位置,增加列,更改列名称,更改列数据类型,列长度,增加标识列,增加主键,约束


上面这些在做数据库升级或者迁移的时候很多时候都要用到的


1.改变字段位置,只需要在表设计器中拖动字段到其他地方


直接在表设计器中,拖动字段到别的位置,然后点击保存




 

2.添加新列


例如为adventurworks数据库中employees表添加备注列(Comment),数据类型为字符型(变长型,长度50字符),该列允许为空



1 ALTER TABLE table_name
2 ADD column_name data_type NULL



1 USE [AdventureWorks]
2 GO
3 ALTER TABLE [HumanResources].[Employee]
4 ADD Comment CHAR(50) NULL
5 GO


 


3.更改列名称


更改列名称不会影响列中的数据,但如果其他数据库对象引用了已修改的列,则用户必须同时做相应的修改



1 --将表test13中的列名由e重命名为x
2 --语法:exec sp_rename '表名.原列名','新列名','column';
3 USE [pratice]
4 GO
5 exec sp_rename 'dbo.test13.e','x','column';


 


 


4.更改列的数据类型以及长度
当表中有数据的时候,要注意转换的时候的长度和精度,以及转换的规则



1 --语法
2 ALTER TABLE table_name
3 ALTER COLUMN column_name data_type



1 --例如:将Employees表中的备注列Remark的数据类型更改为字符型(变长型,长度为255字符)
2 USE [AdventureWorks]
3 GO
4 ALTER TABLE [HumanResources].[Employee]
5 ALTER COLUMN Remark VARCHAR(255)


 


5.增加标识列


一个表只能有一个列定义为IDENTITY属性,而且该列必须以tinyint,smallint,int,bigint,numeric,decimal数据类型定义,标识符列


不允许空值。按需指定种子和增量值,二者默认值均为1。



1 --给Employees表添加一个员工编号(EmployeesCode)列,并将其设置为标识列
2 USE [AdventureWorks]
3 GO
4 ALTER TABLE [HumanResources].[Employee]
5 ADD EmployeesCode INT IDENTITY(1,1) NOT NULL


 


6.定义主键


每张表都应该有一个主键,主键可以由一列或者多列组成(复合主键),标识数据的唯一性,提高查询和排序速度


如果是复合主键,那么这些列的里的数据都不能重复,不单只是某一列



1 --使用TSQL语句为表定义主键约束保证数据完整性
2 --为Employees表添加主键约束,将EmployeeID,LoginID,ManagerID列设置为复合主键
3 USE [AdventureWorks]
4 GO
5 ALTER TABLE [HumanResources].[Employee]
6 ADD CONSTRAINT PK_EMPLOYEES
7 PRIMARY
    
最新技术文章:
▪Sql Server里删除数据表中重复记录的例子
▪如何查看SQLSERVER中某个查询用了多少TempDB空间...
▪在SQL Server中使用ISNULL执行空值判断查询
▪揭秘SQL Server 2014有哪些新特性(1)-内存数据库
▪揭秘SQL Server 2014有哪些新特性(2)-固态硬盘 Buff...
▪揭秘SQL Server 2014有哪些新特性(3)-可更新列存...
▪揭秘SQL Server 2014有哪些新特性(4)-原生备份加...
▪解决SqlServer 各版本 sa帐户不能登录问题
▪浅析SQL Server中包含事务的存储过程
▪深入分析MSSQL数据库中事务隔离级别和锁机制
▪SQL优化技巧指南
▪人工智能自动sql优化工具--SQLTuning for SQL Server
▪使用 TOP 子句限制UPDATE 语句更新的数据
▪总结一周内学习的Sql经验(一) iis7站长之家
▪SQLServer用存储过程实现插入更新数据示例
▪SqlServer中tempdb的日志机制原理解析及示例分享...
▪SqlServer数据库提示 “tempdb” 的日志已满 问题...
▪浅谈tempdb在SqlServer系统中的重要作用
▪SqlServer提示“列前缀tempdb.无效: 未指定表名”...
▪SQL命令优化需要记住的9点事项
▪教你如何看懂SQL Server查询计划
▪sql server 2000数据库备份还原的图文教程
▪SqlServer2012中First_Value函数简单分析
▪sql语句中单引号嵌套问题(一定要避免直接嵌...
▪谈谈sqlserver自定义函数与存储过程的区别
▪SQL SERVER使用REPLACE将某一列字段中的某个值替...
▪总结一周内学习的Sql经验(一)
▪sql存储过程详解
▪SQL Server UPDATE语句的用法详解
▪MSSQL事务的存储过程
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3