我的数据库中有三个文件组:
默认为三级。现在我想在 PRIMARY 上创建表,它显示以下错误
关键字“primary”附近的语法不正确。
create table tb1
(
id int identity primary key nonclustered,
somecolumn nvarchar(15)
)
on PRIMARY;
Run Code Online (Sandbox Code Playgroud)
当我将默认文件组选项更改为 PRIMARY 时,它可以在 PRIMARY 上创建表。当我的语法没有错误时,为什么会显示此错误?
谢谢你的时间。
我有一个包含 3 个表的 SQL Server 数据库。我需要恢复包含4 个表的备份,同时仍保留原始 3 个表中的旧数据。这可能吗?
我想从下面提到的 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) 我有一个数据库的 mdf 和日志文件的副本。该数据库是 MSSQL 2012 数据库。为了使用它,我执行了以下步骤(实际上有点偶然,因为我试图首先从数据目录中复制一个 mdf 和日志文件,并且在服务器使用它们时它不会让我使用它们):
DATA目录中。在SQL server management studio中,出现了新的数据库。我想我可能需要附加它。
MSSQL 服务器是否会自动附加数据目录中的所有 mdf?我担心它不能正常工作,即使它看起来像它。
执行下面的查询时,如果我使用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
我试图了解由执行某些表扫描的 SQL 语句引起的缓存流失。
假设 LRU 缓存,如果某事正在执行 400K 逻辑 IO,则流过多少内存(IO 块大小 * 逻辑 IO)。
此外,我试图了解如何获取关于顶级逻辑 IO SQL 语句的报告并获取这些产生的物理 IO。
鉴于此,我的问题是:
如果我有两台服务器(服务器 A 和服务器 B)属于同一个可用性组故障转移集群,并且在服务器 A 上运行的查询具有使用并行化的执行计划,那么该查询是否可以使用处理器的内核在服务器 B 上?
sql-server parallelism clustering availability-groups sql-server-2017
我已经在我的机器上安装了 sql server express edition 2014。我使用本地机器的 IP 地址通过 CRM 连接到它。
这里的问题是我分配给我的机器的IP地址是动态的,并且在我登录时每天都在变化,这使得我无法连接到CRM(因为IP地址明显变化)。
这种情况怎么办?任何帮助将不胜感激。
当我尝试在 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)
如何更快地从上表中检索数据?
我有一个远程 MS SQL Server,我有几种类型的查询。
我运行了一些属于低延迟生产应用程序一部分的查询,并且需要确保它们及时停止。
但我也有“研究”查询,这些查询往往占用大量 CPU。
如何设置分类器,以便不同的查询(来自同一用户)使用不同的资源池运行,以便我的研究查询不会占用所有 CPU?
我被困在如何做到这一点上,因为我无法按用户区分。
sql-server ×10
clustering ×1
filegroups ×1
network ×1
parallelism ×1
restore ×1
ssms ×1
storage ×1
t-sql ×1
tcpip ×1