标签: sql

SQL Server代理作业:如何在不执行整个作业的情况下执行作业步骤

我有一个以前有两个步骤的SQL Server代理作业.今天,我必须整合第三步,很快我就需要整合第四步.

我想确保步骤正确执行,但我不想执行整个工作.

前两个步骤需要相当多的时间来执行,并且在白天他们占用了我的用户所需的大量SQL资源.

有没有办法可以执行工作步骤而不是整个工作流程?

在SSMS中,如果我右键单击作业,则会有一个选项,指出"在步骤中启动作业...",除非我尝试该选项时会显示一个似乎暗示整个作业已启动的对话框.我可以做些什么来测试工作中的一个步骤?

提前致谢.

sql sql-server sql-server-agent ssis sql-server-2005

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

为什么左外部加入?

奇怪的一个.(可能根本不奇怪)

我有3个对象,员工,罗塔和部门.

public class Employee
{
    public int Id { get; set; }
    public String Name { get; set; }
    public virtual Department Department { get; set; }
}

internal class EmployeeMapping : EntityTypeConfiguration<Employee>
{
    public EmployeeMapping()
    {
        HasKey(a => a.Id);
        Property(a => a.Id).HasColumnName("UserId");

        HasRequired<Department>(a => a.Department).WithOptional().Map(a => a.MapKey("DepartmentId"));
    }
}

public class Department
{
    public int Id { get; set; }
    public String Name { get; set; }
}

internal class DepartmentMapping : EntityTypeConfiguration<Department>
{
    public DepartmentMapping()
    {
        HasKey(a …
Run Code Online (Sandbox Code Playgroud)

c# sql entity-framework-4.1

11
推荐指数
1
解决办法
897
查看次数

带有UNION ALL的CASE的SQL ORDER BY

运行PostgreSQL(7.4和8.x),我认为这是有效的,但现在我遇到了错误.

我可以单独运行查询,它工作正常,但如果我UNION或UNION ALL它会抛出一个错误.

这个错误输出:(警告:pg_query():查询失败:错误:列"Field1"不存在... ORDER BY CASE"Field1"W ...)

SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName" 
WHERE condition
AND other_condition
UNION ALL
SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS field_4
FROM "TableName" 
WHERE yet_another_condition
AND yet_another_other_condition
ORDER BY CASE "Field1"
    WHEN 'A' THEN 1
    WHEN 'B' THEN 2
    WHEN 'C' THEN 3
    ELSE 4
END
Run Code Online (Sandbox Code Playgroud)

这有效:

SELECT "Field1" AS field_1, "Field2" AS field_2,
"Field3" AS field_3, "Field4" AS …
Run Code Online (Sandbox Code Playgroud)

sql postgresql union case sql-order-by

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

SQL Server聚合性能

我想知道如果你想在查询中使用聚合,SQL Server是否知道'缓存',如果再次使用它们.

例如,

Select Sum(Field),
       Sum(Field) / 12
From   Table
Run Code Online (Sandbox Code Playgroud)

SQL Server是否知道它已经在第一个字段上计算了Sum函数,然后将它除以第二个字段的12?或者它会再次运行Sum函数然后除以12?

谢谢

sql sql-server math performance aggregate

11
推荐指数
1
解决办法
763
查看次数

SSRS 2008隐藏列不应导出为CSV

当我在SSRS中隐藏列时,它们仍会出现在CSV导出中.

我必须隐藏列,而不是整个Tablix.

这就是我已经尝试过的:tablix中的过滤器隐藏行而不是列.无法使用表达式设置每列的DataElementOutput.

sql sql-server visual-studio-2008 reporting-services ssrs-2008

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

postgres dblink转单引号

相关链接:

这是我的错误:

ERROR:  type "e" does not exist
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

SELECT *
FROM dblink('host=theHostName port=1234 dbname=theDBName user=theUser password=thePassword',
    E'SELECT field_1, 
    CASE WHEN field_2 IS NOT NULL 
    THEN \'inactive\' ELSE \'active\' 
    END AS field_status 
    FROM the_table 
     ') 
AS linkresults(field_1 varchar(20),field_2 varchar(8))
Run Code Online (Sandbox Code Playgroud)

如果我使用双引号,则删除单引号的反斜杠转义符,并在SELECT语句之前删除E.

SELECT *
FROM dblink('host=theHostName port=1234 dbname=theDBName user=theUser password=thePassword',
    "SELECT field_1, 
    CASE WHEN field_2 IS NOT NULL 
    THEN 'inactive' ELSE 'active' 
    END AS field_status 
    FROM the_table 
     ") 
AS linkresults(field_1 varchar(20),field_2 varchar(8))
Run Code Online (Sandbox Code Playgroud)

我明白了:

NOTICE:  identifier "SELECT ..." will be truncated
Run Code Online (Sandbox Code Playgroud)

我也得到了错误,因为我的查询被截断了. …

sql postgresql dblink escaping

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

如何在SQL Server中识别具有损坏的依赖项的视图?

我们在继承的数据库中有大量的视图,其中一些缺少依赖项(表甚至其他视图)?

识别缺少依赖关系的视图的最佳方法是什么?

sql sql-server

11
推荐指数
1
解决办法
6474
查看次数

调用返回refcursor的函数

我正在使用Postgresql 8.3并具有以下简单函数,它将返回refcursor 给客户端

CREATE OR REPLACE FUNCTION function_1() RETURNS refcursor AS $$
DECLARE
        ref_cursor REFCURSOR;
BEGIN
        OPEN ref_cursor FOR SELECT * FROM some_table;
        RETURN (ref_cursor);    
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用以下SQL命令来调用此函数并操纵返回的游标,但游标名称由PostgreSQL自动生成

BEGIN;
SELECT function_1();  --It will output the generated cursor name , for example , "<unnamed portal 11>" ;
FETCH 4   from  "<unnamed portal 11>"; 
COMMIT;
Run Code Online (Sandbox Code Playgroud)

此外,明确声明游标名称作为函数的输入参数,如 38.7.3.5所述.返回游标.可以声明我自己的游标名称并使用此游标名称来操作返回的游标而不是Postgresql自动为我生成?如果没有,是否有任何命令可以获取生成的游标名称?

sql postgresql plpgsql cursor ref-cursor

11
推荐指数
2
解决办法
3万
查看次数

在命令行上使用免费工具比较两个MySQL数据库

我想生成类似于diff的SQL文件来比较两个MySQL数据库的DATA和STRUCTURE.

这些生成的文件将在命令行上作为SQL查询执行.

在SO和各种论坛上有各种相关的旧线程,但它们处理的是带有用户界面的非免费工具(不是命令行工具).

此外,不应直接同步数据库,而只能通过执行生成的diff SQL脚本来同步.

mysql sql diff

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

将SQLite FTS3与INTEGER列一起使用

我想使用SQLite FTS3(实际上是FTS4)来索引具有整数列的表,概念上是这样的:

CREATE VIRTUAL TABLE whole (document INTEGER, page INTEGER, content TEXT, 
    UNIQUE(document, page)) USING fts4();
Run Code Online (Sandbox Code Playgroud)

我知道FTS3将除rowid之外的所有列都视为TEXT,因此我将不得不使用两个表:

CREATE VIRTUAL TABLE data USING fts4();
CREATE TABLE metadata(document INTEGER, page INTEGER, UNIQUE(document, page));
Run Code Online (Sandbox Code Playgroud)

我希望能够查询文档或给定文档中的页面:

SELECT DISTINCT document FROM metadata NATURAL JOIN data WHERE content MATCH 'foo';
SELECT page FROM metadata NATURAL JOIN data 
    WHERE document = 123 AND content MATCH 'foo';
Run Code Online (Sandbox Code Playgroud)

我认为NATURAL JOIN要求我确保rowid保持同步,但最好的方法是什么?我应该使用FOREIGN KEY还是其他约束?子选择会比连接更好吗?

我想插入已存在于数据库中的文档和页面来覆盖文本内容.这可能通过SQL以编程方式进行,还是我必须检查信息表中是否已存在该行?

对于给定的文档,我也想要从两个表中删除 - 有没有办法在单个语句中执行此操作?

感谢所有建议,但由于我是一个SQL新手,代码示例特别赞赏!

更新:我不清楚如何在这里创建外键约束.如果我选择metadata作为父表(在没有双向约束的情况下,这将是我的偏好):

PRAGMA foreign_keys = ON;
CREATE TABLE metadata (document INTEGER, …
Run Code Online (Sandbox Code Playgroud)

sql sqlite join fts3

11
推荐指数
1
解决办法
4946
查看次数