小编Han*_*non的帖子

在存储过程中生成数据库创建脚本

我希望自动擦除我们的测试环境,使其在每个冲刺结束时与生产保持一致。

就目前而言,这目前正在通过测试环境获取完整备份并使用移动和替换进行恢复来完成,但这占用了我们拥有的大部分空间。

目的是从头开始创建环境并仅填充所需的表。

我可以使用“右键单击 > 任务 > 生成脚本...”来创建数据库框架。

有没有办法从存储过程中创建该脚本,以便可以用于重新创建数据库

此外,我正在按原样处理这一点,但显然该脚本只会以其当前大小创建数据库,因此一旦生成脚本,就需要修改所有文件大小

为任何帮助干杯

sql-server stored-procedures restore sql-server-2012

4
推荐指数
1
解决办法
655
查看次数

确定针对表的查询的原始 IP 地址?

我有一个正在由在未知位置运行的服务更新的表。

我已经检查了所有通常与我的数据库服务器通信的服务器,但它们似乎都没有运行相关服务。

我正在尝试追踪此服务的运行位置,我想知道是否可以查看影响特定表的查询来自何处?

这可能吗?

sql-server sql-server-2012

4
推荐指数
1
解决办法
2087
查看次数

如何仅更新字段的一部分

用户输入了一批记录名称中带有错误后缀的记录 -FY15-Q2而不是FY16-Q1. 所以,记录是这样的:

-LAG-FY15-Q2
-AN-FY15-Q2
-OY-FY15-Q2
-RV-FY15-Q2
etc
Run Code Online (Sandbox Code Playgroud)

他们应该什么时候

-LAG-FY16-Q1
-AN-FY16-Q1
etc
Run Code Online (Sandbox Code Playgroud)

前缀的数量相当有限,因此我总是可以执行多个更新语句,例如SET record name = LAG-FY16-Q1 WHERE record name = LAG-FY15-Q2.

我觉得可能有一种更优雅的方法来使用单个更新语句来做到这一点。也许是修剪过的东西?更复杂的是,一些前缀是三个字母,而另一些是两个字母。

sql-server

4
推荐指数
1
解决办法
1693
查看次数

msdb.dbo.sysjobs 和上次运行日期和时间

我知道 last_run_date 和 last_run_time 存储为 Int,但是当转换到 datetime(我有示例)时,是 GMT 时间还是什么?转换后,它与 GUI 日志历史记录显示的时间不匹配。

任何人都可以提供这方面的指导吗?

这是我将值转换为日期时间值的 t-sql 代码:

'last run literal' = dateadd(millisecond, 
    sjs.last_run_time,
    convert(datetime,cast(nullif(sjs.last_run_date,0) as nvarchar(10))))
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server t-sql

4
推荐指数
2
解决办法
7597
查看次数

为什么 Op Stats 都是 0,而 Usage Stats 却显示 29 个搜索

为什么 Op Stats 都是 0,而 Usage Stats 却显示 29 个搜索。这是从 Brent Ozar 的 sp_blitzindex 返回的。

使用统计 操作统计
读取:29(29 次搜索)写入:14 0 次单例查找;0 次扫描/搜索;0 删除;0 次更新;

index-tuning sql-server-2012 sp-blitzindex

4
推荐指数
1
解决办法
856
查看次数

使用只有读取权限的帐户执行存储过程

我创建了一个有一个存储过程TRUNCATE,并INSERT在它的语句,我使用的一个SSRS报告。

我通常只使用作为db_datareaderSSRS 报告成员的帐户,但是此存储过程不会使用只有这些权限的帐户执行。尝试执行存储过程时报如下错误:

找不到对象“table_name”,因为它不存在或您没有权限。

我是否需要使用有db_datawriter成员的帐户来执行此 SP,或者有什么方法可以让我的db_datareader帐户执行它?

sql-server stored-procedures sql-server-2012

4
推荐指数
1
解决办法
1457
查看次数

IN 子句中的冗余条目

我有一个带有 where 子句的动态构建查询,如下所示:

where column in ('a', 'a', 'a', 'b')

实际数据要长很多,有很多重复项,如上面的示例中a重复了 3 次。

对于WHERE使用IN具有大量值(其中许多是重复值)的非常大的子句,是否存在潜在的性能影响?

performance sql-server t-sql sql-server-2016 query-performance

4
推荐指数
1
解决办法
454
查看次数

SQL Server 服务帐户

我们有一台新的 Windows 2016 服务器,我必须安装 SQL Server 2016 标准版。安装和配置 SQL 服务器后,我会将现有的生产数据库移动到新的数据库服务器。

我可以远程桌面访问服务器以安装 SQL 服务器,但不确定是否需要域服务帐户?我的印象是 SQL 服务器在安装过程中分配的默认服务就足够了。

问题 1:

DB Admin 团队将远程桌面连接到该服务器并使用 SSMS 连接到 SQL 服务器,而不是从他们的本地 SSMS。在这种情况下,我是否必须拥有域服务帐户?

问题2:

DB支持的应用程序将有几百个用户通过网络连接?在这种情况下,默认服务帐户就足够了,还是我必须拥有域服务帐户?

我是数据库管理领域的新手,所以我仍然在为几个概念苦苦挣扎。

sql-server users sql-server-2016

4
推荐指数
1
解决办法
3784
查看次数

此查询计划中没有 IMPLICIT_CONVERSION 警告

采用以下最低限度完整且可验证的示例1代码:

USE tempdb;

DROP TABLE IF EXISTS dbo.t;
GO
CREATE TABLE dbo.t
(
    t_id int NOT NULL
        CONSTRAINT t_pk
        PRIMARY KEY 
        CLUSTERED
        IDENTITY(1,1)
    , k sysname NOT NULL
        INDEX t_001
    , s sysname NOT NULL
        INDEX t_002
    , somedata varchar(1000) NOT NULL
        CONSTRAINT t_somedata_df
        DEFAULT REPLICATE('A', 1000)
    , INDEX t_003 (k, s)
);

INSERT INTO dbo.t (s, k)
SELECT sc1.name, sc2.name
FROM sys.syscolumns sc1
    CROSS JOIN sys.syscolumns sc2;

CREATE STATISTICS t_st001 ON dbo.t (k) WITH FULLSCAN;
CREATE …
Run Code Online (Sandbox Code Playgroud)

sql-server type-conversion sql-server-2016 cardinality-estimates

4
推荐指数
1
解决办法
135
查看次数

消除相交的额外行

我有一个几何值表,其中一些行与其他行相交。

我需要一个几何与其他行重叠的行列表,但我希望该列表尽可能简洁。

这是设置:

USE tempdb;
DROP TABLE IF EXISTS dbo.t;

CREATE TABLE dbo.t
(
    n varchar(100) NOT NULL
    , i geometry NOT NULL
);

INSERT INTO dbo.t (n, i)
VALUES ('poly1', geometry::STGeomFromText('POLYGON ((1 2, 1 4, 1 5, 4 6, 1 2))', 4326))
     , ('poly2', geometry::STGeomFromText('POLYGON ((1 2, 1 3, 2 5, 4 6, 1 2))', 4326))
     , ('poly3', geometry::STGeomFromText('POLYGON ((7 9, 8 7, 9 6, 7 9))', 4326))

SELECT t1.n
    , t2.n
FROM dbo.t t1
    INNER JOIN dbo.t t2 …
Run Code Online (Sandbox Code Playgroud)

sql-server duplication

4
推荐指数
1
解决办法
63
查看次数