标签: sql-server-2012

如何在 SQL Server 2012 上使用分区实现表清除?

我读过这个问题: 如何删除表分区

但这不是我想要的。

我想设置一个表,在日期/时间列上使用分区来拥有 1 个月的分区。然后,配置一个执行 montlhy 的作业并删除具有超过 9 个月记录的分区。

我可以使用 SQL Server 2012 Enterprise 进行设置吗?

sql-server partitioning sql-server-2012

5
推荐指数
1
解决办法
2957
查看次数

一个位置的最小距离;一个点表与一组点 SQL 2012 相比

我试图找到找到一个点到点表的最小距离的最快方法。唯一需要注意的是,我试图找到最小距离的点表是 150K 单点。

或者更好地解释表 A 有 150K 行/点,表 B 1500 点。我想知道表 A 中的每一行与表 B 中列出的所有行的最小距离是多少。

我有一个进行距离计算的函数,作为表 A 的附加列。它只需要很长时间。表 B 有一个空间索引。

这就是我所拥有的:

select a.*, 
       dbo.fxn_distance(geography::STPointFromText('POINT(' + 
       CAST([Long] AS VARCHAR(20)) + ' ' + CAST([Lat] AS 
       VARCHAR(20)) +    ')', 4326)) as DistAway
from Table A a
Run Code Online (Sandbox Code Playgroud)

我的功能:

create function fxn_distance
(@pointTableA geography
)
returns float 
as 
begin

declare @distance float

select top 1 @distance = b.GeoLocation.STDistance(@pointTableA) 
from TableB b  
where geolocation.STDistance(@pointTableA) is not null
order by geolocation.STDistance(@pointTableA)

return @distance
end
Run Code Online (Sandbox Code Playgroud)

对不起,如果我完全是一个新手,我知道解决方案可能很简单,但我无法解决这个问题。所以希望澄清一下:我需要通过表 A …

sql-server t-sql sql-server-2012 spatial

5
推荐指数
1
解决办法
2363
查看次数

获取租用有库存产品的不可用日期

数据库查询,通常很简单,但有时又很困难。(大脑训练师)

所以我有产品、股票和rentStockOrders。这些产品可以租用几天。这些股票也有一个可用的日期。是否可以租用新产品(库存)取决于该产品已租用的库存。

  • 库存物品不能在可用日期之前租用。
  • rentStockOrder(在订单和库存之间链接)包含预订,因此rentStartDate 和rentEndDate。
  • 查询应检查当所有股票都已出租时哪些日期不可用。
  • 产品可以租用几天,其中不提供开始/结束日期。选择产品,然后使用日期时间选择器选择租赁的开始日期。
  • 整体最大日期提前一年(可以是输入参数),最小日期为今天(或 +2)。

这个想法是用户还没有选择开始日期,在用户能够这样做之前,我想在日期时间选择器中禁用某些日期,因为该产品的租赁期没有可用的库存,因此无法用作开始日期.

放在上下文中:选择了一种产品,用户可以选择指定他想要租用该产品的天数(1 周、2 周或 3 周)。用户选择后,他们必须选择开始日期。与其每次都显示此日期不可用的错误,我宁愿事先禁用开始日期。

由于产品可供租用的情况较多,因此我认为最好从我的数据库中选择不可用的选择日期列表,而不是完整的可用日期列表。因此无法在日期时间选择器中单击不可用的日期。

到目前为止,我发现的大多数示例都包括我没有的开始和结束日期的输入参数,我有一个产品想要租用的天数长度以及在特定时间范围内已经租用了多少股票。

股票

+---------+-----------+-------------------+
| stockId | productId | availableFromDate |
+---------+-----------+-------------------+
|       1 |         1 | 01-01-2016        |
|       2 |         1 | 01-01-2016        |
+---------+-----------+-------------------+
Run Code Online (Sandbox Code Playgroud)

租赁股票订单

+------------------+---------+----------------+----------------+
| rentStockOrderId | stockId | beginRentDate  |  endRentDate   |
+------------------+---------+----------------+----------------+
|                1 |       1 | 15-01-2016     | 14-02-2016     |
|                2 |       2 | 30-01-2016     | 20-02-2016     |
|                3 |       2 | 26-02-2016     | 07-03-2016 …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

5
推荐指数
1
解决办法
1208
查看次数

使用 Ola Hallengrens 备份脚本获取代理帐户以备份到共享

我有一个 SQL Server 2012 Standard 安装,其中引擎和代理在默认 NT 服务帐户下运行

引擎 - NT 服务\MSSQLSERVER

代理 - NT 服务\SQLSERVERAGENT

我试图让 Ola Hallengrens 备份脚本备份到网络共享,但这证明有点问题。通常我会让引擎和代理在域帐户下运行并授予这些访问网络共享的权限,它会正常工作,但是这是在我之前设置的,无法更改这些。

由于代理和引擎不在域帐户下运行,我试图使用代理来使其正常工作。

我有一个共享\\ComputerName\Folder和一个服务帐户Domain\account.svc。我可以使用该Domain\account.svc帐户浏览和创建文件和文件夹,因此访问似乎正常。但是,当通过代理运行它时,它不起作用。

我做了什么。

  • 使用创建凭据 Domain\account.svc
  • 创建操作系统 (CmdExec) 代理并将其链接到凭据
  • 在备份系统数据库作业步骤中,将“运行方式”设置为代理帐户

我在日志文件中得到的错误是

消息 50000,级别 16,状态 1,服务器 [服务器名称],过程 DatabaseBackup,第 457 行
目录 \\ComputerName\Folder 不存在。

Msg 50000, Level 16, State 1, Server [SERVER NAME], Procedure DatabaseBackup, Line 740 该文档可在https://ola.hallengren.com/sql-server-backup.html 获得

这与您通常在代理域帐户无权访问共享时遇到的错误相同。

问题 - 有人可以解释为什么这不起作用。

谢谢。

编辑 1:Domain\account.svc 对共享具有完全控制权,是机器上的本地管理员以及 SQL 中的系统管理员。

编辑 2:在我的桌面上安装了 SQL 的测试实例,并且能够复制该问题。当我将引擎和代理服务帐户更改为在 Domain\account.svc 下运行时,备份成功完成到共享。 …

sql-server permissions sql-server-2012 sql-server-agent ola-hallengren

5
推荐指数
1
解决办法
3123
查看次数

SQL Server 2012 Express 支持多少用户?

我想说我已经浏览了一些 sql 博客和 MSDN BOL,但仍然有一些困惑。

  1. SQL Server 2012 Express 的限制是 10 GB。这是基于实例还是基于每个数据库的限制?

  2. SQL Server 2012 Express 的连接数:连接数有限制或无限制。

    如果我将使用服务器版本的操作系统,那么最大并发用户连接数是多少。

  3. 限制来自数据库级别或操作系统级别。

  4. 如果我将 Windows Server 2012 R2 与 SQL Server 2012 Express SP1 一起使用,那么最大并发连接数是多少?

  5. 我们可以在单个 SQL Server 实例下保留多少个数据库。

任何帮助或建议将不胜感激

max-connections sql-server-2012 sql-server-express windows-server

5
推荐指数
1
解决办法
1万
查看次数

如何限制 SSIS 包中目标数据库实例的版本?

如何限制 SSIS 包仅在 SQL Server 2012 上执行?

是否有内置的方法来执行此操作(元数据?),还是我需要进行查询?

(可能属于一个新问题)

我可以使用 获取版本SERVERPROPERTY('ProductVersion'),但如何验证它是like '11.%'

sql-server ssis sql-server-2012 ssis-2012

5
推荐指数
1
解决办法
133
查看次数

在 SQL Server 2012 中的 TSQL 函数中使用 XSD 验证 XML?

我需要在 TSQL 中使用 XSD 验证 XML。为了使此任务半自动化,我需要在 TSQL 函数中执行此操作。

为了进行验证,我必须将值设置为 XML,如果它无效,我将收到一个错误。

我的问题是在 TSQL 函数内部我不能使用TRY / CATCH. 这是正确的方式吗,如果有可能做到这一点?

xml t-sql sql-server-2012 functions sql-clr

5
推荐指数
1
解决办法
917
查看次数

SQL Server (2012-2014) 可以配置为“按需”运行吗?

我对 SQL 非常非常陌生,并且无法正确配置服务器。我现在要做的只是一份我工作的公司的数据库模式的小副本,其中包含随机数据。运行一个只有几个表的小型服务器,我只是偶尔查询以测试应用程序,我可以将 SQL 配置为“按需”使用资源(可能是一个侦听查询的代理,并且仅执行此操作,而不是在内存中缓存数据)还是使用最少的系统资源?

我发现,即使只有 15 个表,总共 250MB 的存储空间,SQL 总是在只有 8GB 可用空间的机器上使用至少 2GB 的内存。

确实在 StackExchange 上寻找过类似的问题,但只发现了关于将多少内存用于操作系统而不是服务器计算机上的数据库的争论。

sql-server memory sql-server-2012 sql-server-2014

5
推荐指数
2
解决办法
454
查看次数

即使已声明,在 SQL 函数中出现错误“必须声明标量变量”

我正在改变function

ALTER FUNCTION [dbo].[fn_CalculateListing](@Listing TypeListingDatePrice READONLY)
RETURNS TypePreviousListingResult 
AS 
BEGIN
    DECLARE @tbl_ListingDateDetails TypePreviousListingResult   
    RETURN @tbl_ListingDateDetails
END
GO
Run Code Online (Sandbox Code Playgroud)

但抛出错误为:

Msg 137, Level 16, State 1, Procedure fn_CalculateListing, Line 6
Must declare the scalar variable "@tbl_ListingDateDetails".
Run Code Online (Sandbox Code Playgroud)

即使我在使用该变量之前已经声明过,为什么会出现错误并要求声明?

TypePreviousListingResult 是创建为 的表类型CREATE TYPE TypePreviousListingResult AS TABLE...

上一个问题:如何在sql中编写接受表作为输入并将结果作为表返回的函数?

sql-server sql-server-2012 functions user-defined-table-type table-valued-parameters

5
推荐指数
1
解决办法
8513
查看次数

如何将列传递给 sql 中的函数?

我计算中位数为:

DECLARE @TEMP TABLE
(
    ID INT
)

Select 
(
        (
            Select Top 1 ID
            From   
            (
                Select  Top 50 Percent ID
                From    @Temp
                Where   ID Is NOT NULL
                Order By ID
            ) As A
            Order By ID DESC
        ) + 
        (
            Select Top 1 ID
            From   
            (
                Select  Top 50 Percent ID
                From    @Temp
                Where   ID Is NOT NULL
                Order By ID DESC
            ) As A
            Order By ID Asc
        )
) / 2
Run Code Online (Sandbox Code Playgroud)

以上查询我想使用。但是,就我而言,columns我想计算的对象太多了MEDIAN。但我认为为每个 …

sql-server aggregate sql-server-2012

5
推荐指数
2
解决办法
3289
查看次数