我正在尝试为表中的每个找到最新的 unit_status和该状态 ( )的时间戳。cdtsunid
这是我到目前为止想出的:
with cte as
(
select *
from un_hi
where ag_id = 'bfd' and cdts > '201708' and
unit_status != 'uc'
)
select distinct(unid), max(cdts2) Last_GPS_Report_Date
from cte
where unid in ('C06','C07','D01','D03','D04','D06')
group by unid
order by unid
Run Code Online (Sandbox Code Playgroud)
它正确地返回每个unid和时间的他们的最新状态(max(cdts)),但我想看看有什么unit_status了。
我尝试将这个查询加入到UN_HI表中(这是数据的来源),但我无法让它工作。还有其他建议吗?
我正在编写一个存储过程来使用sp_send_dbmail系统存储过程来发送 HTML 电子邮件。我以前使用过这个程序,但以前没有遇到过这个问题。我正在使用此处列出的构建方法
从网上我认为NVARCHAR(MAX)应该最多容纳 2 147 483 647 个字符(ref)
但是,当我构建我的输出时,如果我PRINT输出它不会返回完整的字符串。
我已经单独测试了我的 SQL,这按预期返回。
显然我有一个错误,但有人可以指出它是什么吗!
脚本是:
Declare @RawPart varchar(30);
Declare @PO varchar(30);
Declare @NL varchar(12)='<br/>';
DECLARE @BodyHTML NVARCHAR(MAX) ;
Declare @SubjectText varchar(200);
Declare @StaffEmail varchar(50);
Declare @MrpDate varchar(12);
Set @MrpDate=(Select convert (varchar(12),[SnapshotDate],103) from [dbo].[MrpReqCtl] )
set @StaffEmail='SOMEPLACE@DOMAIN.co.uk';
set @SubjectText ='Schedule Update from MRP Email';
Set @PO='106277';
Set @RawPart=(Select Distinct MStockCode From dbo.PorMasterDetail Where PurchaseOrder=@PO and LineType=1)
--N'<p>Attention From the Mrp run '+@MrpDate+N'</p><p>Has …Run Code Online (Sandbox Code Playgroud) 我有一个大致像这样的架构(这是我实际架构的简化):
CREATE TABLE foo (
key1 NUMERIC(6) NOT NULL,
key2 VARCHAR(32) NOT NULL,
val VARCHAR(255) NULL,
CONSTRAINT foo_pk PRIMARY KEY (key1, key2) --PK on key1, key2
)
GO
CREATE TABLE bar (
key1 NUMERIC(6) NOT NULL,
key2 VARCHAR(32) NOT NULL,
val VARCHAR(255) NULL,
CONSTRAINT bar_pk PRIMARY KEY (key1, key2) --PK on key1, key2
)
GO
CREATE TABLE aliases (
id VARCHAR(32) NOT NULL PRIMARY KEY,
text VARCHAR(255) NOT NULL,
CONSTRAINT aliases_uk UNIQUE (text) --PK on id, unique constraint on text …Run Code Online (Sandbox Code Playgroud) performance sql-server-2008 sql-server recursive query-performance
我正在与程序员一起研究数据库解决方案。他们想要添加一个计算列来模拟旧查询、过程和系统的旧键,并为其编制索引。新密钥将是 GUIDS。
为此,他们希望为计算列创建一个函数,该函数创建一个值并将其持久化。它不会让他们保留该列。我对这个想法没有任何热情的模糊,我也无法在网上找到有关该技术的任何信息(它是一种技术吗?)。
我认为他们需要添加触发器。有没有人有任何想法?
该函数将按如下方式运行:
(SELECT [INT Identity field] FROM TABLE WHERE [GUID COLUMN] = @GUIDKEY
Run Code Online (Sandbox Code Playgroud)
它根据 GUID 返回一个 INT 标识字段。
这将在插入相关表时运行。因此,如果表一持有主键,则相关表二将更新(使用传入的 GUID)以从表一中获取键并将其插入到表二中。
是什么导致 Microsoft SQL Server 自动删除手动创建的索引?我创建的每个索引都会在几个小时内删除。
这是我用来创建索引的代码。受影响的视图运行得更快。索引消失/在几个小时内被删除。受影响的视图运行缓慢或失败。
CREATE NONCLUSTERED INDEX IX_Tablename_fieldname
ON dbo.Tablename (fieldname)
WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud) 在我的数据库中,日期保留为自 1970 年 1 月 1 日起/之前经过的天数,我认为这是一种 Unix 日期格式,例如。今天是 2018 年 5 月 23 日,值为 17674。
我正在尝试select针对日期表中的列运行语句以仅显示年份。
如果我运行这个:
datepart(year, c.cko_date)
Run Code Online (Sandbox Code Playgroud)
我得到的日期是 1940 年代(应该是最近几年)。
当我跑
select datepart(year, getdate())
Run Code Online (Sandbox Code Playgroud)
它正确地告诉我日期是 2018 年。
关于我做错了什么的任何建议?
我有一个包含 15 000 000 条记录的大表,突然 Select Top 停止工作。我使用 MS SQL 管理工作室。
这不起作用,查询返回 0 条记录:
SELECT TOP (10)
[Id]
,[Result]
,[DateStamp]
,[ConversionTime]
,[Converter]
,[SourceFileFormat]
,[DestinationFileFormat]
,[Ip]
,[Source]
,[Error]
,[UserId]
,[TokenId]
,[ConversionCost]
FROM [ca-v2].[dbo].[Log]
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,如果我尝试选择一个 ID 字段,它会正常工作。
工作正常:
SELECT TOP (10)
[Id]
FROM [ca-v2].[dbo].[Log]
Run Code Online (Sandbox Code Playgroud)
此外,如果我在最后添加 order by 查询也开始工作:
SELECT TOP (10)
[Id]
,[Result]
,[DateStamp]
,[ConversionTime]
,[Converter]
,[SourceFileFormat]
,[DestinationFileFormat]
,[Ip]
,[Source]
,[Error]
,[UserId]
,[TokenId]
,[ConversionCost]
FROM [ca-v2].[dbo].[Log]
Order By [DateStamp]
Run Code Online (Sandbox Code Playgroud)
我跑到DBCC CHECKTABLE桌子上,收到以下错误:
错误:消息 8978,级别 16,状态 1,第 1 行
表错误:对象 ID 1029578706,索引 …
由于客户端应用程序将 PDF 文件存储为 varbinary,我有一个现有的旧表,大小约为 180GB。我希望能够在创建新解决方案时使用 GZIP 压缩所有行的该列以帮助节省空间(我希望有一种方法可以在 SQL 中执行此操作,而不必为此编写客户端代码)。我看到该COMPRESS方法可用于 Sql Server 2016,但我需要一个适用于 2008 的解决方案。任何想法将不胜感激。
Microsoft SQL Server 有一个名为sp_refreshview的系统存储过程,它更新传入的视图的元数据。
对我的所有视图定期运行此过程是否有任何不利之处?(例如性能统计受到影响等?)
我可以每晚、每小时、每隔几分钟运行一次吗?
如果这样做没有任何影响,这似乎是确保我的视图元数据在它们引用的基础实体可能发生更改时保持最新的好方法。
我正在尝试在 SQL Server 2008 中导入 CSV 文件。BULK INSERT是一种方法,但它适用于SQL Server 2014 以后的CSV 。
实现这一目标的替代方法是什么?
任何想法/想法都非常感谢。
sql-server ×10
sql-server-2008 ×10
compression ×1
corruption ×1
csv ×1
date ×1
date-format ×1
format ×1
import ×1
metadata ×1
performance ×1
recursive ×1
t-sql ×1
varbinary ×1