我现在在一个项目上工作了很长时间。它是一个与 SQL Server 数据库(.mdf、LINQ to SQL)配合使用的 .NET 应用程序。现在我快完成了,想运行一些测试。
但在这里我完全搞砸了。到目前为止,我的应用程序只在我自己的电脑上运行,.mdf 文件存储在本地。我实际计划的是一个应用程序,它连接到存储在来自不同机器的网络路径上的数据库。
现在我读到这在 SQL Server 数据库中是不可能的?!我也收到消息:
文件 xxx.mdf 位于数据库文件不支持的网络路径上。
任何人都可以想出一个选项,如何在不重新编程整个数据库的情况下解决这个问题?
我首先想到的一个可能的明显绝望的解决方案是:
如果我的问题没有其他解决方案,我的解决方案是否有效?如果可以,避免并发更新的可能性有多大?
请帮助并提前致谢!
我想从基于多行 DISTINCT 的 SELECT 语句创建一个表,但 PostgreSQL 不允许我这样做。
我需要创建一个表格,其中的元素之前是从另一个表格中选择的,并且它们都是唯一的。
这是我的尝试:
CREATE TABLE new_name AS (
SELECT DISTINCT(table.field1, table.field2), table.field1, table.field2,
FROM ...
WHERE ...
);
Run Code Online (Sandbox Code Playgroud)
如果我运行这个语句,PostgreSQL 会说:
错误:列“行”具有伪类型记录
我怎么能解决这个问题?
这篇非常有用的文章解释了有关MySQL 枚举行为的一些奇怪之处:http : //melp.nl/2009/05/mysql-enums-and-booleans/
没有关于为什么存在这种行为的讨论。此外,在谷歌搜索这个主题时,我发现只有相互矛盾的信息和推测,由“博主”和其他盲人引导。
有人可以描述一下为什么 MySQL 枚举会遭受帖子中概述的行为。这是帖子中介绍的 Enum 奇怪之处的一个示例,但还有更多示例:
mysql> insert into t values('1'),('0');
mysql> select b,b=1,b=0 from t;
+---+-----+-----+
| b | b=1 | b=0 |
+---+-----+-----+
| 1 | 0 | 0 |
| 0 | 1 | 0 |
+---+-----+-----+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud) 我正在使用一个称为updated_at缓存失效的时间戳列。此处提供有关此特定技术的更多信息。
查询都具有相同的格式
UPDATE "managers" SET "updated_at" = '2014-07-25 15:00:24.212512' WHERE "managers"."id" = 1
问题是此列上的活动过多,导致写入缓慢。我假设减速是由锁定机制引起的。列上没有索引。
我们一直试图通过将可能导致多次更新的操作批处理来缓解这种情况,这确实有所帮助,但整个系统仍然受到影响。
我们实际上正在考虑将其移至 redis 并使用 INCR。
表“public.managers”
专栏 | 类型 | 修饰符
-------------------------+------------------------ -----+-------------------------------------------- -----------------
身份证 | 整数 | 非空默认 nextval('leads_managers_id_seq'::regclass)
account_id | 整数 |
created_at | 没有时区的时间戳 |
更新时间 | 没有时区的时间戳 |
通知_收件人| 文字 | 默认 ''::character 变化
用户名 | 字符变化(255) |
索引:
“leads_managers_pkey”主键,btree (id)
"index_leads_managers_on_uuid" UNIQUE, btree (uuid)
"index_leads_managers_on_account_id" btree (account_id)
我只是想知道如何从 XML 列中提取一个整数。目前所有的数字都是 4,下面的查询可以做到。但是这个数字很快就会增长到 10,000 个,这意味着 5 位数,这个查询将无法做到。无论如何,我是否可以动态地从 Xml 列的中间<siteID>和中间取出任何整数</siteID>。任何建议将不胜感激。
SELECT
SUBSTRING(msg, patindex('%[0-9][0-9][0-9][0-9]</siteID>%',msg),4) AS DOMAIN
FROM table a(NOLOCK)
WHERE msg like '<DLR%'
ORDER BY 1 DESC
Run Code Online (Sandbox Code Playgroud) WITH [ProgressInvoicesPeriodCost] AS
(
SELECT
ProgressInvoices.ProjectId
, ProgressInvoices.PeriodId
, SUM(ProgressInvoiceDetails.TotalThisInvoice) AS TotalThisInvoice
FROM
CostManagement_ProgressInvoices AS ProgressInvoices
LEFT JOIN CostManagement_ProgressInvoiceDetails AS ProgressInvoiceDetails
ON ProgressInvoices.Id = ProgressInvoiceDetails.ProgressInvoiceId
WHERE
ProgressInvoices.ProjectId IN (@Projectlisting)
GROUP BY
ProgressInvoices.ProjectId
, ProgressInvoices.PeriodId
)
[CommitmentCOPeriodCost] AS
(
SELECT
CommitmentCOs.ProjectId
, CommitmentCODetails.PeriodId
, SUM(CommitmentCODetails.AmountApproved) AS AmountApproved
FROM
CostManagement_CommitmentCOs AS CommitmentCOs
LEFT JOIN CostManagement_CommitmentCODetails AS CommitmentCODetails
ON CommitmentCOs.Id = CommitmentCODetails.CommitmentCOId
WHERE
CommitmentCOs.ProjectId IN (@Projectlisting) AND CommitmentCOs.PostAsId = 2
GROUP BY
CommitmentCOs.ProjectId
, CommitmentCODetails.PeriodId
)
[CommitmentPeriodCost] AS
(
SELECT
Commitments.ProjectId
, CommitmentDetails.PeriodId …Run Code Online (Sandbox Code Playgroud) 基于这篇文章,还原第一的黄金角色
恢复完整数据库备份后,恢复最新的差异数据库备份和之后的所有事务日志备份,使数据库恢复到当前状态。
差异备份保存自上次完整备份以来的所有数据更改。
我不明白为什么我们必须恢复事务日志备份,因为(完整数据库备份 + 差异备份)应该将我的数据库恢复到最新状态。
抱歉,我想不出更好的问题标题
以下代码用于在文本文件中写入数字,而是将“Echo is ON”写入文本文件。
SET @CMD = 'ECHO '+@Ver+'>'+@Vercheck
Print @CMD
EXEC xp_cmdshell @CMD
,NO_OUTPUT
Run Code Online (Sandbox Code Playgroud)
打印@CMD 给出“ECHO 1>C:\Pharmsuite\Vercheck.txt”
这里查询写的是“Echo is ON”而不是 1。
有谁知道哪个 SQL Server 2014/2016 版本/版本支持 CDC(变更数据捕获)?
sql-server ×6
mysql ×2
postgresql ×2
t-sql ×2
backup ×1
concurrency ×1
cte ×1
ddl ×1
enum ×1
locking ×1
network ×1
select ×1
substring ×1
union ×1
update ×1
xml ×1
xp-cmdshell ×1