使用SQL语句恢复数据库

偶遇一次使用备份文件恢复SQL Server数据库,在数据库管理工具中选择备份文件盘符时,工具卡死;无奈之下使用SQL语句恢复数据库。由于数据库原始文件名和数据库名不一致,所以在SQL语句中采用MOVE……TO……关键词,将原始文件名指定到当前数据库文件存放路径。SQL语句记载如下:RESTORE DATABBASE [DbName] --指定要恢复的数据库名 FROM DISK='E:\20180404.bak' --指定备份文件存放目录 WITH REPLACE, --覆盖现有数据库 MOVE 'DbOriginalFileName' TO 'C:\Program files\Microsoft SQL Server\MSSQL14.MSSQLSERVER20...


阅读正文

SQL Server中关联多表、带有聚合函数的更新(Update)语句

最近忙于公司产品和项目,很有没有写博客了,碰巧今天遇上一个问题,纠结了比较久,在网上搜索了一些资料最终得出解决方案。业务场景如下:考生表tblUser:标识列(Id)姓名(Name)总分(TotalScore)1张三NULL2李四NULL3王五NULL得分表tblScore:考生标识列(UserId)姓名(Name)科目(Subject)得分(Score)1张三数学861张三语文992李四数学982李四语文853王五数学593王五语文51我们需要使用SUM()和GROUP把附表B中的总分累加起来,赋值给主表A中的总分。1. 先查询考生表中的数据,遍历所有考生,将考生总分查询出来,单条更新到考生表中。此方法执行效率很低下,遍...


阅读正文

SQL Server还原数据库的SQL语句,可用于定时作业中定时还原数据库

USE master --设置数据库离线后再在线,避免数据库正在使用占用进程 ALTER DATABASE [数据库名] SET OFFLINE WITH ROLLBACK IMMEDIATE ALTER DATABASE [数据库名] SET ONLINE --开始恢复 RESTORE DATABASE [数据库名] FROM DISK='D:\还原文件\数据库\备份文件名.bak' WITH REPLACE --覆盖还原 --授权用户 ALTER AUTHORIZATION ON DATABASE::[数据库名] TO [数据库用户名]以下是《SQL Server备份数据库的SQL语句,可用于定时作业中定时备份数据库》


阅读正文

SQL Server执行大脚本时提示“内存不足,没有足够的内存继续执行程序”解决办法

在SQL Server中运行大容量脚本,系统提示“内存不足,没有足够的内存继续执行程序”,该如何解决呢?1. 提示如图:2.我们可以通过命令行来进行导入,命令如下图: osql -E -i D:\脚本文件.sql以上命令即可运行脚本了,如果要记录运行过程中的脚本执行日志,则可以使用-o参数来保存执行日志,如下:osql -E -i D:\脚本文件.sql -o D:\执行日志文件.txt3.osql的其它参数如下,可供参考:


阅读正文

“数据类型 ntext 和 nvarchar 在 equal to 运算符中不兼容”的解决办法

在SQL中判断ntext字段是否等于指定值,报错“数据类型 ntext 和 nvarchar 在 equal to 运算符中不兼容”,先上SQL语句报错截图:如以上SQL语句,'123'在数据库中是varchar格式的,和ntext字段是完全不同的,所以无法进行比较。于是就报出了错误“数据类型 ntext 和 nvarchar 在 equal to 运算符中不兼容”,那么如何解决这个问题呢? 1. 在数据结构允许的情况下,直接将数据库中将ntext改成varchar或者nvarchar 2. 在业务逻辑允许的情况下,将等于判断改为LIKE模糊匹配,如:SELECT * FROM tblTest WHERE myContent LIKE '%123%' 3. 修改SQ...


阅读正文

SQL Server变成单个用户后不能访问,设置成多个用户的方法

SQL Server中,数据库列表显示单个用户(如下图),导致无法访问,可运行以下SQL语句,使数据库变为多用户访问USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master..sysprocesses WHERE dbid=DB_ID('数据库名'); EXEC(@SQL); ALTER DATABASE [数据库名] SET MULTI_USER;执行SQL语句后,刷新数据库列表,数据库后面的“(单个用户)”已经消失了


阅读正文

SQL Server无法修改表结构,保存时提示“阻止保存要求重新创建表的更改”的处理办法

1.在SQL Server管理工具中添加、修改、或者删除列,点击保存时提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”2.处理方法点击菜单栏 工具 > 选项在选项窗口中选中左侧的Designers,在右侧界面中取消勾选“阻止保存要求重新创建表的更改”,保存回到修改表的界面,重新保存表结构即可!


阅读正文