AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-9234

Petter Brodin's questions

Martin Hope
Petter Brodin
Asked: 2019-11-14 02:19:53 +0800 CST

从查询中获取所有未声明的变量

  • 3

假设您尝试运行以下查询:

SELECT *
FROM dbo.Customers c
WHERE id = @id
    AND dateTimeCreated = @date

您将收到一条错误消息,如下所示Must declare the scalar variable "@id".

据我了解,这发生在查询的初始解析期间,在执行任何代码之前。

是否可以让 SQL Server 一次报告所有丢失的变量,或者这正是查询解析器的工作方式?

sql-server error-handling
  • 1 个回答
  • 176 Views
Martin Hope
Petter Brodin
Asked: 2017-06-09 04:02:41 +0800 CST

STRING_SPLIT 带有多字符分隔符?

  • 12

SQL Server 2016 引入了STRING_SPLIT,它速度非常快,是人们在 2016 年之前推出的任何自制实现的绝佳替代品。

不幸的是,STRING_SPLIT 仅支持单字符分隔符,这并不总是足够的。有谁知道允许在分隔符中使用多个字符的良好实现?

sql-server t-sql
  • 1 个回答
  • 17965 Views
Martin Hope
Petter Brodin
Asked: 2017-01-14 03:46:31 +0800 CST

脚本无法作为 SQL Server 代理作业运行,从 SSMS 运行时成功完成

  • 4

我有两个计划每天运行一次的 T-SQL 脚本。两者都从不同的表中清理一些旧数据。两个脚本都以同一用户的身份在同一数据库上运行。

脚本 A 将在 SQL Server Management Studio 和作为作业启动时成功执行,但脚本 B 仅在 SQL Server Management Studio 中成功执行,即使以与设置为在 SQL Server 下运行脚本相同的用户身份登录也是如此代理人。

脚本 B 失败并出现以下错误:

作为用户 [用户名] 执行。
DELETE 失败,因为以下 SET 选项的设置不正确:'QUOTED_IDENTIFIER'。

验证 SET 选项对于索引视图和/或计算列上的索引和/或过滤索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作是否正确。

[SQLSTATE 42000](错误 1934)。步骤失败。

我在我要清理的一个表上确实有一个过滤索引,但为什么它会通过 SSMS 工作?

sql-server sql-server-2014
  • 1 个回答
  • 1598 Views
Martin Hope
Petter Brodin
Asked: 2014-01-11 03:14:54 +0800 CST

多语句事务中不允许使用 ALTER DATABASE 语句

  • 14

我从这里下载了基于 AdventureWorks 的 In-memory 示例,并按照随附文档中描述的所有步骤进行操作。但是,当我尝试在 SQL Server Management Studio 中运行脚本时,我收到错误消息:

多语句事务中不允许使用 ALTER DATABASE 语句

错误指向第 9 行,即:

IF NOT EXISTS (SELECT * FROM sys.data_spaces WHERE type='FX')
    ALTER DATABASE CURRENT ADD FILEGROUP [AdventureWorks2012_mod] 
    CONTAINS MEMORY_OPTIMIZED_DATA
GO

由于这是(或多或少)微软官方文档,我假设这是我做错了,但我无法弄清楚它是什么。

sql-server sql-server-2014
  • 3 个回答
  • 29015 Views
Martin Hope
Petter Brodin
Asked: 2012-10-23 00:15:12 +0800 CST

关闭所有 SQL Server 数据库的自动收缩。为什么这不起作用?

  • 8

我想我可以使用 sp_MSforeachdb 来解决这个问题,但我收到一条错误消息。

sp_MSforeachdb '
BEGIN
USE [?]
DECLARE @dbid INT
SET @dbid = DB_ID()
IF(@dbid > 4)
BEGIN
    --PRINT ''[?]'' + CONVERT(VARCHAR, @dbid)
    --ALTER DATABASE [?] SET AUTO_SHRINK OFF
END
END;
'

如果我在未注释 PRINT 行的情况下运行上述查询,我​​会得到除系统数据库之外的所有数据库的列表。但是,当我取消注释 ALTER DATABASE 行时,我收到以下两条错误消息:

消息 5058,级别 16,状态 2,第 9 行
选项 'AUTO_SHRINK' 无法在数据库 'master' 中设置。
消息 5058,级别 16,状态 1,第 9 行
选项 'AUTO_SHRINK' 无法在数据库 'tempdb' 中设置。

这似乎在某些时候中断了操作,因此只有一些数据库被禁用自动收缩。

知道如何在所有数据库上禁用自动收缩吗?额外的问题:为什么我的方法不起作用?

sql-server sql-server-2008
  • 2 个回答
  • 7409 Views
Martin Hope
Petter Brodin
Asked: 2012-10-10 00:51:57 +0800 CST

SQL Server 虚拟日志大小

  • 8

我是一个偶然的 DBA,作为一名开发人员,从一个对数据库管理知之甚少的人那里继承了几个数据库服务器(2005 年和 2008 年),而且似乎对了解更多关于该主题的兴趣更小。

我边走边学,目前正在尝试找出事务日志文件。

我们所有的数据库都设置了简单的恢复模型和自动收缩。我知道使用自动收缩通常是一个可怕的想法,但我的理解是这样做是为了阻止事务日志失控。(自动收缩实际上是收缩日志文件还是仅仅收缩数据库?)

我在 SQL Server 2012 中发现了这一点,并且想知道关于 2005 年和/或 2008 年是否属实,以及它的确切含义:“当数据库使用简单恢复模型时,数据库引擎会在检查点之后截断事务日志。[. ..] 当虚拟日志已满 70% 时,数据库引擎会在简单恢复模式下触发自动检查点。” 虚拟日志大小在哪里指定?

我想在所有数据库上禁用自动收缩,但在我这样做之前,我需要知道日志文件不会很快失控。

任何帮助将不胜感激。

sql-server transaction-log
  • 3 个回答
  • 4359 Views
Martin Hope
Petter Brodin
Asked: 2012-06-07 02:17:17 +0800 CST

将存储为 char YYYMMDDHHmmSS 格式的日期时间转换为日期时间

  • 2

我正在使用一个表,其中事件的日期和时间以 YYYMMDDHHmmSS 或“20120606122012”格式存储为字符。我需要将此与当前时间戳进行比较,以查看事件发生后是否超过 20 分钟,但这似乎比我预期的要困难。

是否有可能做到这一点,或者如果没有:是否有不同的方法有效?

sql-server t-sql
  • 2 个回答
  • 2518 Views
Martin Hope
Petter Brodin
Asked: 2012-06-06 02:34:22 +0800 CST

在 SQL Server 2008 中调用系统存储过程时使用正确的数据库

  • 6

我认为在运行自定义系统存储过程时使用哪个数据库时我缺少一些东西。我的存储过程中有以下内容(为简洁起见进行了编辑):

ALTER PROCEDURE sp_mysp
AS
IF (EXISTS (
    SELECT *
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_NAME = 'mytable'))
BEGIN
    --Do stuff to the table
END
ELSE
BEGIN
    PRINT 'Table mytable does not exist'
END

问题是当我从 mydb 调用过程时,主表用于初始检查,而不是当前数据库。如果我编写 mydb.INFORMATION_SCHEMA.TABLES 它可以工作,但这并不是真正的解决方案,因为它破坏了将其维护为单个 SP 而不是每个 DB 一个 SP 的全部意义。

有任何想法吗?我尝试将 DB 名称作为参数传递并使用“use @db_name”启动 SP,但显然存储过程不允许使用语句。

提前感谢所有帮助。

sql-server stored-procedures
  • 2 个回答
  • 6415 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve