标签: sql-server

MS SQL Server 不在指定的文件组中创建表

我的数据库中有三个文件组:

在此处输入图片说明

默认为三级。现在我想在 PRIMARY 上创建表,它显示以下错误

关键字“primary”附近的语法不正确。

create table tb1
(
    id int identity primary key nonclustered,
    somecolumn nvarchar(15)
)
on PRIMARY;
Run Code Online (Sandbox Code Playgroud)

当我将默认文件组选项更改为 PRIMARY 时,它可以在 PRIMARY 上创建表。当我的语法没有错误时,为什么会显示此错误?

谢谢你的时间。

sql-server filegroups

0
推荐指数
1
解决办法
1106
查看次数

如何在不覆盖所有表的情况下恢复备份?

我有一个包含 3 个表的 SQL Server 数据库。我需要恢复包含4 个表的备份,同时仍保留原始 3 个表中的旧数据。这可能吗?

sql-server-2008 sql-server restore

0
推荐指数
1
解决办法
608
查看次数

从 Json 获取 Json 字段值

我想从下面提到的 json 字符串中获取“OrderNumber”字段值。请建议最好的方法来获得相同的

DECLARE @JSON NVARCHAR(MAX)=

  '{"ErpOrderResponses":[{"OrderSubmitStatus":"Ok","TransactionId":"{5EAB3ADC-EB9B-47F7-98B8-1449E2CC0A6B}","OrderNumber":7000027934,"CustomerNumber":80038707,"Description":"Request Successful","ResponseCode":"Success","ResponseType":"None","Errors":[]}],"IsErpUnavailable":false,"IsSuccessful":true,"IsPartiallySuccessful":false,"IsValidationFailed":false,"IsFailed":false}'

    DECLARE @OrderNumber BIGINT = 
    (SELECT REPLACE(REPLACE(SUBSTRING(@JSON,CHARINDEX('OrderNumber',@JSON)+1,
                                                        CHARINDEX(',',@JSON,
                                                                        CHARINDEX('OrderNumber',@JSON)+1
                                                                )-CHARINDEX('OrderNumber',@JSON)
                                                        )
                                                        ,'RDERNUMBER":',''),',','') )
    --SELECT CAST( @OrderNumber AS BIGINT)

    SELECT  @OrderNumber 
Run Code Online (Sandbox Code Playgroud)

sql-server

0
推荐指数
1
解决办法
149
查看次数

我可以简单地将 mdf 和日志文件复制到数据文件夹中以添加新数据库吗?

我有一个数据库的 mdf 和日志文件的副本。该数据库是 MSSQL 2012 数据库。为了使用它,我执行了以下步骤(实际上有点偶然,因为我试图首先从数据目录中复制一个 mdf 和日志文件,并且在服务器使用它们时它不会让我使用它们):

  1. 我在 Windows 中停止了 MSSQL 服务器进程
  2. 将它们复制到DATA目录中。
  3. 然后我再次启动了 MSSQL 服务器进程。

在SQL server management studio中,出现了新的数据库。我想我可能需要附加它。

MSSQL 服务器是否会自动附加数据目录中的所有 mdf?我担心它不能正常工作,即使它看起来像它。

sql-server ssms

0
推荐指数
1
解决办法
2179
查看次数

SQL PRINT 与 SQL EXEC

执行下面的查询时,如果我使用PRINT它打印正确。我可以复制并粘贴打印的代码并执行它。但是,如果我使用 EXEC,则会出现以下错误:

执行时出错

有没有办法简化我正在做的事情?为什么 SQLPRINT和 SQL 会EXEC提供这两种截然不同的结果集?

DECLARE @TableName as NVARCHAR(250), @SQL as VARCHAR(MAX);

DECLARE @TableCursor as CURSOR;
SET @TableCursor = CURSOR FOR
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'
AND name like 'HISTORY_MasterList_%'
ORDER BY sobjects.name

OPEN @TableCursor;
FETCH NEXT FROM @TableCursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL ='select '''+ @TableName +''', 0
 Union All
select All ''Server Count'',count(1) from ['+ @TableName +'] 
 Union All
select All ''Server Cores'',sum(convert(decimal(18,0),cores)) …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server t-sql sql-server-2008-r2 sql-server-2012

0
推荐指数
1
解决办法
1371
查看次数

SQL Server 逻辑 IO 块大小和物理读取

我试图了解由执行某些表扫描的 SQL 语句引起的缓存流失。

假设 LRU 缓存,如果某事正在执行 400K 逻辑 IO,则流过多少内存(IO 块大小 * 逻辑 IO)。

此外,我试图了解如何获取关于顶级逻辑 IO SQL 语句的报告并获取这些产生的物理 IO。

鉴于此,我的问题是:

  1. SQL Server 逻辑 IO 操作所指的 IO 块大小是多少。
  2. 如何获取特定 SQL 执行实例的物理 IO?

sql-server storage

0
推荐指数
1
解决办法
1159
查看次数

执行计划使用并行化的查询是否可以使用属于同一可用性组的另一台服务器上的处理器内核?

如果我有两台服务器(服务器 A 和服务器 B)属于同一个可用性组故障转移集群,并且在服务器 A 上运行的查询具有使用并行化的执行计划,那么该查询是否可以使用处理器的内核在服务器 B 上?

sql-server parallelism clustering availability-groups sql-server-2017

0
推荐指数
1
解决办法
58
查看次数

如何使用动态IP地址连接到sql server

我已经在我的机器上安装了 sql server express edition 2014。我使用本地机器的 IP 地址通过 CRM 连接到它。

这里的问题是我分配给我的机器的IP地址是动态的,并且在我登录时每天都在变化,这使得我无法连接到CRM(因为IP地址明显变化)。

这种情况怎么办?任何帮助将不胜感激。

sql-server network tcpip

0
推荐指数
1
解决办法
1073
查看次数

由于列大小过长,查询需要更多时间来执行

当我尝试在 SSMS 中执行以下查询时,由于列大小过长(列名称:关键字,列大小:nvarchar(4000)),查询需要更多时间(超过 10 分钟)来执行。员工表包含 6000 条记录。

Select EmployeeId, EmployeeName, Designation, Keywords
From Employees
Where StatusFlag = 'L'
Run Code Online (Sandbox Code Playgroud)

我为上表创建了下面的非聚集覆盖索引。

Create NonClustered Index NCI_Employees_StatusFlag On Employees(StatusFlag) Include (EmployeeId, EmployeeName, Designation, Keywords) 
Run Code Online (Sandbox Code Playgroud)

如何更快地从上表中检索数据?

sql-server sql-server-2012

0
推荐指数
1
解决办法
83
查看次数

使用资源调控器限制同一用户的查询 CPU 使用率

我有一个远程 MS SQL Server,我有几种类型的查询。

我运行了一些属于低延迟生产应用程序一部分的查询,并且需要确保它们及时停止。

但我也有“研究”查询,这些查询往往占用大量 CPU。

如何设置分类器,以便不同的查询(来自同一用户)使用不同的资源池运行,以便我的研究查询不会占用所有 CPU?

我被困在如何做到这一点上,因为我无法按用户区分。

sql-server resource-governor

0
推荐指数
1
解决办法
261
查看次数