我有一个从显示不同数据的表中选择数据的视图。
表是dbo.user,视图是dbo.users(不要判断,我继承了这个系统)。观点很简单select * from table。
如果我运行以下语句:
SELECT Field1, Field2 FROM dbo.[User] WITH (NOLOCK) ORDER BY Field1;
SELECT Field1, Field2 FROM dbo.Users WITH (NOLOCK) ORDER BY Field1;
Run Code Online (Sandbox Code Playgroud)
我为其中一个字段获得了不同的值。见附图:

任何想法这是如何发生的?该表是聚集的,具有 pk 和唯一索引。
我在完全恢复模式下有一个非常大的数据库。我的 SQL Server 是 2008 R2。问题是我需要迁移到新服务器,同时原始数据库仍在生产中。
备份和恢复都需要几个小时,所以...
备份时添加到数据库中的记录会发生什么变化?如果我是对的,这不是问题,.bak文件将包含所有数据,直到备份结束。我是否标记了仅复制?
备份完成后,我开始恢复......在新服务器中恢复时获取已添加到原始数据库的其余记录的最佳选择是什么?
我试过全+差分,但我收到一条消息
无法恢复差异备份,因为数据库尚未恢复到正确的早期状态
在我的测试环境中。
可以肯定这是最后一次完整备份,因为我只是在修改一条记录后一分钟后才进行备份。
另外,我用 norecovery 恢复完整,用 recovery 恢复差异。
我做错了什么?
备份将备份到磁盘,因为我需要尽快完成。
编辑:
我仍然收到消息“无法恢复差异备份,因为...”。有什么问题?
备份到磁盘时我必须做一些特别的事情吗?这些是 LSN:
+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-
| BackupType | | FirstLSN | | LastLSN | | CheckpointLSN | | DatabaseBackupLSN |
+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-
| FullBackup | | 99000000025100209 | | 99000000034000001 | | 99000000033800001 | | 98000002545900051 |
| DiffBackup | | 99000000033800001 | | 99000000036800001 | | 99000000035000041 | | 98000002545900051 |
+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-
Run Code Online (Sandbox Code Playgroud) 我有一个 MS-SQL 2014 SP1 - 两个节点 AlwaysOn AG(一个主节点和一个只读辅助节点)有大约 10 个数据库,总大小为 20-30GB。我有一些关于调度索引重建和统计信息收集的问题。
我计划通过维护计划每周安排一次。通常在主节点上根本没有负载的周日晚上。
我应该在主要还是在副本中运行作业?如果我只在辅助上运行它,那么我会得到什么好处?或相反亦然?(意思是我应该在两个节点上运行)
如果我通过维护计划使用 SP1 和索引重建,是否可能发生损坏? 正如这里提到的
sql-server availability-groups sql-server-2014 index-maintenance
我正在使用sp_Blitz,并希望使用它来执行对我所有 SQL Server 的检查并将结果写入单个表。
我是否需要在中央实例上创建链接服务器以连接到其他实例,或者是否有其他方法可以将服务器名称输入到sp_Blitz存储过程中?
我sp_BlitzCache version 4.1 (20161210)在一个2008R2 instance (10.5.4042).
如果我在没有 的情况下执行 sp @OutputDatabaseName, @OutputSchemaName, and @OutputTableName,它工作正常。但是,当我设置这些值时,它会在整个过程中运行到最后,并出现错误:
“INSERT 语句的选择列表包含比插入列表更多的项目。SELECT 值的数量必须与 INSERT 列的数量相匹配。”
我正在运行的具体语句是:
EXEC [dbo].[sp_BlitzCache] @OutputDatabaseName = 'Maintenance_Stats'
,@OutputSchemaName = 'dbo'
,@OutputTableName = 'BlitzCacheResults'
Run Code Online (Sandbox Code Playgroud)
数据库、模式和表已经存在,但其中没有记录。所以......在 sp 代码的某个地方,它创建了表,但试图将太多的值填充到表中。
我正在使用它来尝试解决应用程序 (SCCM) 挂起问题,并按照建议创建了一个 SQL 代理作业,帮助台在遇到问题时可以执行该作业(它是间歇性的),但我尝试自己执行它,并且它因上述错误而失败。
是否可以每小时将 SQL 事务日志恢复到 MS SQL 数据库,而不必先恢复完整备份?
您可以将数据库设置为无恢复,应用事务日志,然后设置为恢复。每小时都这样做吗?那可能吗?
问题的原因是供应商每天早上发送完整的数据库备份,而不是发送大型备份,而是全天发送 T-Log。
我按照https://dbatools.io/offline/ 上的说明进行操作:
下载压缩包并解压
运行$env:PSModulePath以查找所有路径。
复制到C:\Program Files\WindowsPowerShell\Modules.
跑 Get-ChildItem -Recurse "C:\Program Files\WindowsPowerShell\Modules" | Unblock-File
当我尝试运行时Export-DbaInstance -SqlInstance,出现以下错误:
术语 Export-DBAInstance 无法识别”。
任何帮助将不胜感激。
我有一个包含以下数据的表格。
columnA columnB
ONE value 1
ONE value 2
ONE value 3
TWO value 1
TWO value 2
THREE value 1
Run Code Online (Sandbox Code Playgroud)
需要帮助创建下面给出的查询
COLUMN X COLUMN Y
ONE value 1, value 2, value 3
TWO value 1, value 2
THREE value 1
Run Code Online (Sandbox Code Playgroud) 我试图截断一个表如下:
TRUNCATE TABLE [servername].[dbname].[schema].[table]
Run Code Online (Sandbox Code Playgroud)
我有错误:
对象不存在或您没有权限。
但是,如果我删除该servername部分,它会起作用。
谁能解释为什么我不能在截断中使用四部分名称?谢谢。
使用 SQL AlwaysOn,我将我的可读辅助设置为只读意图。当我尝试使用参数连接时,applicationintent=readonly我与主服务器建立了连接。
这是我的参数:
这是我创建路线的脚本:
ALTER AVAILABILITY GROUP [AG-Test]
MODIFY REPLICA ON
'PROD-TEST' WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL='TCP://PROD-test.contoso.com:1433'));
ALTER AVAILABILITY GROUP [AG-Ocean]
MODIFY REPLICA ON
'DRP-TEST' WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL='TCP://DRP-test.contoso.com:1433'));
ALTER AVAILABILITY GROUP [AG-Test]
MODIFY REPLICA ON
'PROD-TEST' WITH
(PRIMARY_ROLE(READ_ONLY_ROUTING_LIST =('DRP-TEST','PROD-TEST')))
ALTER AVAILABILITY GROUP [AG-Test]
MODIFY REPLICA ON
'DRP-TEST' WITH
(PRIMARY_ROLE(READ_ONLY_ROUTING_LIST =('PROD-TEST','DRP-TEST')))
Run Code Online (Sandbox Code Playgroud) 我注意到,虽然在听力主机postgresql.conf是 localhost通过连接到数据库psql,除非主机改变失败127.0.0.1。我也注意到MySQL有时会显示相同的特征。
有没有之间的一些区别127.0.0.1和localhost这将导致数据库连接要区别对待?
sql-server ×10
restore ×2
t-sql ×2
backup ×1
connectivity ×1
dbatools ×1
migration ×1
permissions ×1
postgresql ×1
powershell ×1
psql ×1
scripting ×1
sp-blitz ×1
truncate ×1
view ×1