我通过命令提示符运行我的数据库的每日备份:
c:\sqlcmd -H localhost -Q "BACKUP DATABASE test TO DISK='c:\test.bak'"
Run Code Online (Sandbox Code Playgroud)
但是新的备份替换了以前的备份。请告诉我要更改什么,以便所有备份都存储在磁盘上。
我的表有一个单列的数据:
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
我想要这样的输出:
1 2 3 4 5-first row
6 7 8 9 10 - second row
Run Code Online (Sandbox Code Playgroud)
另一个有两列这样的:
Column 1 Column 2
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
Run Code Online (Sandbox Code Playgroud)
我希望它显示如下:
1 a 2 b 3 c 4 d 5 e-first row
6 f 7 g 8 h 9 i 10 j - second row
Run Code Online (Sandbox Code Playgroud) 我在db1和 中有一个通用的产品表db2。我想把它做成一张桌子,因为它有一个库存(产品库存)。在两个不同的数据库之间共享产品表的最佳解决方案是什么?我有几个想法:
你能指导我走最好的路吗?
我正在尝试在两个 SQL Server 2008 R2 数据库之间设置事务复制,无论我尝试什么,它似乎都不起作用,而且我不知道去哪里寻找有关可能发生的事情的更多信息错误的。
我已经通过运行两台服务器上的向导创建了发布和订阅,并且一切似乎都已启动并正在运行 - 我在发布服务器上收到成功消息,表明它已创建发布并将文章添加到发布等。我也订阅订阅数据库成功订阅此发布。复制监视器显示一切正常 - 但即使我在发布数据库中手动添加/修改数据,发布和订阅的同步状态也始终显示为“没有可用的复制事务”。
我尝试从两台服务器中删除复制数据,从备份中删除和重新创建数据库,重新初始化订阅数据库等,但都没有任何乐趣。
任何有关在哪里寻找有关可能发生的事情的更多信息的建议将不胜感激。
我将数据库从 SQL Server 2005 移到 SQL Server 2012。有什么办法可以恢复新服务器上的所有登录信息?
我一直在尝试让以前工作的复制开始工作。
我尝试了很多设置,但我似乎无法让它工作。
这是场景。我从目标数据库中删除了所有 FK 约束(称之为 DestDB)。
然后我重新初始化我的复制,当我运行时,我收到这个(去标识化)错误:
ALTER TABLE 语句与 FOREIGN KEY 约束“FK_TableOnlyInDestDB_MyReplicatedTable”冲突。冲突发生在数据库“DestDB”、表“SomeSchema.MyReplicatedTable”、“MyReplicatedTableId”列中。(来源:MSSQLServer,错误号:547)
它让我发疯,因为该数据库中不存在指示的 FK。
现在,我确实从另一个数据库复制了这个数据库(备份和恢复)。所以我唯一能想到的是它以某种方式穿越了溪流。
但这似乎不太可能。
任何想法都会很棒!
注意:这是我运行的查询,以确保我没有 FK(它没有返回任何行):
use DestDB
SELECT f.name AS ForeignKey,
OBJECT_NAME(f.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName,
OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName,
COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id
Run Code Online (Sandbox Code Playgroud)
我还检查以确保有问题的 FK 不在源表上(在我从中复制的数据库中)。
我也试过: EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'
也试过 Dropping MyReplicatedTable。删除就好了,复制重新创建了它。(但仍然给了我错误。)
我尝试创建一个空数据库作为订阅者。效果很好,所以是 DestDB 中的某些东西导致了问题,但 ERROR 中的 FK 不存在。
当我有一个查询来检查uniqueidentifer具有空值的表中是否不存在类型的列时,我不会得到任何结果。如果子查询不返回空值,则它工作正常,并且仅在使用not in.
我知道我可以只not null检查我的子查询,但我很好奇为什么这不起作用。
查询示例:
select a.guid from tableA a where a.guid not in (select b.guid from tableB AS b)
Run Code Online (Sandbox Code Playgroud)
工作测试:
select 1 where newid() not in (select newid())
Run Code Online (Sandbox Code Playgroud)
破碎测试:
select 1 where newid() not in (select null)
Run Code Online (Sandbox Code Playgroud) 我正在使用 SSMS 2012。我正在使用 .PRC、.TAB 和 .UDF 文件。我将这些文件扩展名添加到 SSMS,以便它已经通过工具 > 选项 > 文本编辑器 > 文件扩展名将它们视为 .SQL 文件,但最近 SSMS 已停止识别这些文件(例如,不会使用颜色编码显示它们或允许我对数据库运行它们)。有趣的是,当我从文件中删除文件扩展名时,它会识别它们,因为它选中了“将无扩展名的文件映射到 SQL 查询编辑器”。
有谁知道问题可能是什么?
当使用 SQL Server 2012 EMaintenance Plan 进行备份时,备份数据库任务会创建一个唯一的文件名。我理解格式一直到最后一组数字。
例如,通过备份数据库任务启动的完整数据库备份将创建如下文件名:
AdventureWorks_backup_2014_12_17_080005_5862824.bak
什么是5862824引用?是不是比LSN?还有什么?