SQL Server 的一个陷阱

今天发现一些数据有异常,开头的字符是Unicode 0xFEFF, 于是将其删除,于是执行下列语句:
UPDATE table SET data = RIGHT(data, LEN(data)-1) WHERE LEN(data)>0 AND data LIKE NCHAR(0xFEFE)+N’%’
结果很不幸啊,全部数据都被去掉了一个字符
于是,又用下列语句验证了一下:
SELECT COUNT() FROM table WHERE 1=1
SELECT COUNT(
) FROM table WHERE data LIKE NCHAR(0xFEFE)+N’%’
结果一样,就是说,全部数据都中选.

幸好事先保存了备份. 不然麻烦可真大.

SQL Server 还原时改名

想比较一下备份和当前的差别,于是将备份恢复到一个新库中,但由于原库存在,还原失败(错误:3154), 怎么办呢?
记得以前曾经干过类似的事,于是再重新摸索了一下,这次记下来,也许今后用得到。

SQL Server 还原时改名,例如将db1的备份db1.bak还原到一个新数据库db2
要点:
1 不要事先建立数据库
2 右击数据库,选择还原文件和文件组
3 找到db1.bak
4 在数据库名称处输入db2
5 GO