标签: sql-server

SSIS 2008 包配置被忽略

当我在命令行上指定 /ConfigFile something.dtsConfig 时,2008 年包配置与 2005 年相比发生了变化,包中定义的变量将保留其设计时值,而不是使用配置文件中的设置。

我不太确定我完全理解如何获取要使用的外部配置文件。我读过一些文章,说只有设置的设计时配置才会覆盖外部文件的负载。这是否意味着我可以将变量更改为空字符串,然后它们会被覆盖?我不能完全删除变量!整数呢?

我看过一些文章提到使用包中的包配置关闭。

我可以使用 SSIS 包编辑器或 XML 编辑器来更改包中的配置文件路径,然后它将“最后”使用该文件的设置(无论外部 /ConfigFile 选项如何),但我不想成为改变包。我想要一个带有 Test.dtsConfig 和 Production.dtsConfig 的包,并且能够在不更改包的情况下来回交换。

现在推荐的方法是什么?

sql-server-2008 sql-server ssis

10
推荐指数
1
解决办法
9201
查看次数

IF NOT NULL 然后 UPDATE 否则保留该字段的值

我想我在某种程度上接近让它工作,但由于某种原因我仍然会出错。

我有以下更新查询:

UPDATE DeviceAttribute
SET Details = CASE Name
          WHEN 'Accessories' THEN @Accessories
          WHEN 'Description' THEN @Description
          WHEN 'Specification' THEN @Specification
          ELSE Details
END
WHERE DeviceID = 10
Run Code Online (Sandbox Code Playgroud)

参数由不同的用户填写。我现在面临的问题是,即使您想更新单个字段,您仍然必须使用旧数据填写其他参数。因此,我想设置选项 IF @parameter IS NULL THEN THEN 保留已存储在数据库中的值。我试图找到一些解决方案,类似以下查询的内容似乎是解决方案,但我无法让它工作:

UPDATE DeviceAttribute
SET Details = CASE Name
          WHEN 'Accessories' IS NOT NULL THEN @Accessories
          WHEN 'Description' IS NOT NULL THEN @Description
          WHEN 'Specification' IS NOT NULL THEN @Specification
          ELSE Details
END
WHERE DeviceID = 10
Run Code Online (Sandbox Code Playgroud)

数据库存储在 SQL Server 2008 中

在此先感谢您的帮助。

编辑以澄清:

原来的表是这样的

DeviceID|Name …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server-2008 sql-server

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

确定哪些值与表行不匹配

我希望能够轻松检查查询中提供的表中不存在哪些唯一标识符。

为了更好地解释,这是我现在要做的,以检查表中不存在列表“1、2、3、4”的哪些 ID:

  1. SELECT * FROM dbo."TABLE" WHERE "ID" IN ('1','2','3','4'),假设该表不包含 ID 为 2 的行。
  2. 将结果转储到 Excel
  3. 在原始列表上运行 VLOOKUP,搜索结果列表中的每个列表值。
  4. 任何导致 的 VLOOKUP#N/A都在表中没有出现的值上。

我认为必须有更好的方法来做到这一点。理想情况下,我正在寻找类似的东西

要检查的列表 -> 查询要检查的表 -> 不在表中的列表成员

sql-server-2005 sql-server except

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

SSIS 保持强制更改 excel 源字符串以浮动

Excel 中有一个列应该是文本,但 SSIS 在那里看到数字文本并自动使其成为双精度浮点 [DT_R8]。

我可以在输出分支的外部和输出列中手动更改它,但错误输出只是拒绝让我更改相应的列。

Error at Extract Stations [Excel Source [1]]: The data type for "output "Excel Source Error Output" (10)" cannot be modified in the error "output column "Group No" (29)".
Error at Extract Stations [Excel Source [1]]: Failed to set property "DataType" on "output column "Group No" (29)".
Run Code Online (Sandbox Code Playgroud)

我曾尝试修改包 xml。我试过了IMEX=1typeguessrow=0但没有一个能解决我的问题。这有什么解决办法吗?还有一些文章建议您修改注册表,以便 excel 在猜测数据类型之前读取超过默认的 8 行。我不想走这条路,因为即使它可以工作,我也必须修改我计划运行包的机器上的注册表。

要导入SQL nvarchar字段的excel字段读取例如

295.3
296.33
Run Code Online (Sandbox Code Playgroud)

但它们被写入 SQL 表

295.30000000000001
296.32999999999998
Run Code Online (Sandbox Code Playgroud)

我放入数据查看器,字段显示

295.3
296.33
Run Code Online (Sandbox Code Playgroud)

一直到执行这是正确的,但我猜当它遇到 OLE DB 目标源时,它会以某种方式将它转换为

295.30000000000001
296.32999999999998 …
Run Code Online (Sandbox Code Playgroud)

sql-server ssis excel

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

差距和孤岛:客户端解决方案与 T-SQL 查询

针对间隙和孤岛的 T-SQL 解决方案能否比在客户端上运行的 C# 解决方案运行得更快?

具体来说,让我们提供一些测试数据:

CREATE TABLE dbo.Numbers
  (
    n INT NOT NULL
          PRIMARY KEY
  ) ; 
GO 

INSERT  INTO dbo.Numbers
        ( n )
VALUES  ( 1 ) ; 
GO 
DECLARE @i INT ; 
SET @i = 0 ; 
WHILE @i < 21 
  BEGIN 
    INSERT  INTO dbo.Numbers
            ( n 
            )
            SELECT  n + POWER(2, @i)
            FROM    dbo.Numbers ; 
    SET @i = @i + 1 ; 
  END ;  
GO

CREATE TABLE dbo.Tasks
  (
    StartedAt SMALLDATETIME NOT NULL ,
    FinishedAt SMALLDATETIME …
Run Code Online (Sandbox Code Playgroud)

performance sql-server gaps-and-islands query-performance

10
推荐指数
1
解决办法
2135
查看次数

SQL Server AFTER INSERT 触发器

我希望married在使用marital_status列上的文本进行插入后触发此触发器,这是我目前所拥有的

ALTER TRIGGER [dbo].[marriage]
ON  [dbo].[applicant_personal_info]
AFTER INSERT
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF (SELECT [marital_status] FROM inserted) = 'married'
 BEGIN
     INSERT INTO [dbo].[applicant_marriage_info]([dom])
     VALUES('abc')
 END
END
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

10
推荐指数
2
解决办法
9万
查看次数

多个SQL Server实例如何配置内存?

我们有一组运行在同一虚拟服务器上的 SQL Server 实例 (2008 R2)。每个实例代表我们开发周期中的一个阶段(开发/测试/阶段/等)。在任何给定的时间,所有实例都需要在线,但负载往往会被隔离到一个实例,这取决于我们在发布生命周期中的位置。

SQL Server 似乎会抓取并保存我们设置为最大值的任何内存量。我想知道是否有任何方法可以将实例配置为“智能”内存消耗,以便它们在需要时不会相互阻止获取内存。

sql-server sql-server-2008-r2

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

SQL Server 2012 中的 Collat​​ion Code (blank, 90, 100, 110) 的含义是什么

在安装 SQL Server 2012 期间,在 Collat​​ion 选项卡中,我可以在French_CI_ASFrench_100_CI_AS之间进行选择。

它们是什么意思,哪个是新的?当没有代码时,它是比 100 新还是旧?

sql-server collation sql-server-2012

10
推荐指数
2
解决办法
7478
查看次数

SQL Server 统计信息是否存储在数据库或缓冲池中?

只是想知道统计数据是否保存在数据库中而不是内存中?如果我将数据库从生产服务器备份/恢复到开发服务器,它是否会保留相同的统计信息,以便在开发服务器上执行计划不会有太大不同?

sql-server statistics execution-plan

10
推荐指数
2
解决办法
3372
查看次数

SQL Server RAID 10 与 RAID 5 的安装

我是设置 SQL Server 和 Vms 的新手。我的前任使用了 SQL 安装所在的 C 驱动器的 Raid 5 和数据库文件和数据库日志的 RAID 10。

我想知道这是正确的还是应该将 RAID 5 用于 SQL 数据库文件?

有什么帮助吗?

sql-server-2008 sql-server

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