小编pra*_*een的帖子

如何获取存储过程中的表列表

db中有很多表和sp.我找到了特定sp(存储过程)中使用的表名.

sp_depends %sp_name%没有给出欲望的结果.我也用过INFORMATION_SCHEMA.TABLES,INFORMATION_SCHEMA.ROUTINES桌子.

但结果并没有完全满足我的要求.

sql-server

23
推荐指数
6
解决办法
7万
查看次数

将多值参数传递给子报表

在处理multivalue报告之间的参数时遇到问题.

我有一个主要报告,我在其中定义了一个多值参数,我用它来运行SQL查询来填充其数据集.该参数在WHERE子句中以下列方式使用:

WHERE values IN (@parameter)
Run Code Online (Sandbox Code Playgroud)

它工作正常,它可以恢复预期的数据.

然后,此主报告将此参数传递给子报表.该参数在子报表中也被定义为多值,并且我可以在参数的下拉列表中看到它以正确的方式接收值.像这样:A,B,C

问题是填充子报表的数据集的查询什么都不返回.它还有一个在主报告中定义的WHERE子句(已经工作)

WHERE values IN (@parameter)
Run Code Online (Sandbox Code Playgroud)

如果我手动运行查询,将值硬编码为如下所示:

WHERE values IN ('A', 'B', 'C')
Run Code Online (Sandbox Code Playgroud)

它工作,但当我尝试使用参数时,它没有.所以,不知何故,它正在失去格式或价值观.

我在子报表的数据集定义中尝试了这个解决方案,该定义是在另一个线程中提出的:

 =join(Parameters!<your param name>.Value,",")
Run Code Online (Sandbox Code Playgroud)

但它对我不起作用,数据集仍然是空的.

关于我缺少什么的任何想法?

谢谢!:)

sql parameters subreport multivalue reporting-services

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

分配给变量"User :: de_sters"的值的类型与当前变量类型不同

我有一个变量de_sters,一个字符串类型变量,因为它在我的SSIS包中定义,它的范围是SSIS包,我需要fill使用一个表中的几行的值,使用Execute Sql Task包.

底线是我有一个"执行Sql任务"包,在proprieties - >"Sql Statement"我写道:

declare @s varchar(max) = '' 
select @s =  case when @s <> '' 
                  then  @s + ',''' + employer_name + '''' 
                  else   @s + '''' + employer_name+ ''''
                  end 
from employers
select @s as Result
Run Code Online (Sandbox Code Playgroud)

然后,在Result Set我选择Single Row(首先我运行我的选择,我看到它只返回一行).然后在tab Result Set(左侧)我在Result Name字段中写道Result(来自我之前的sql语句的别名)和Variable Name我写的文件User::de_sters.

但是当我运行sql任务时,它给了我

The type of the value being assigned to variable "User::de_sters"
differs …
Run Code Online (Sandbox Code Playgroud)

sql-server ssis

6
推荐指数
1
解决办法
8248
查看次数

Varchar(数字)导致SSIS失败

我正在开发一个非常简单的SSIS包:运行存储过程将数据从变量表直接导出到平面文件目的地.最初,变量表中的每一列被定义为varchar(max),到目前为止工作正常.为了提高性能,我决定对变量表应用约束,这与varchar(max)不兼容,我必须为它分配一定数量,例如varchar(10).在此更改后,此SSIS遭遇了一系列错误:

Error: 0xC0202009 at ESP AL Extract, OLE DB Source [835]: An OLE DB error has
occurred. Error code: 0x80040E21.
An OLE DB record is available.  Source: "Microsoft SQL Native Client" 
Hresult: 0x80040E21  Description: "Multiple-step OLE DB operation generated
errors. Check each OLE DB status value, if available. No work was done.".
Error: 0xC0208265 at ESP AL Extract, OLE DB Source [835]: Failed to retrieve
long data for column "SR_RequestID".
Error: 0xC020901C at ESP AL Extract, …
Run Code Online (Sandbox Code Playgroud)

varchar ssis

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

将 datetimeoffset 数据类型转换为 datetime 数据类型导致值超出范围

使用SQL Server 2008.I有一个表叫用户具有列LastLogindatadatetimeoffset数据类型

以下查询适用于生产服务器,但不适用于复制服务器。

select top 10 CAST(LastLoginDate AS DATETIME)  from User.
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。将 datetimeoffset 数据类型转换为 datetime 数据类型导致值超出范围。

谢谢

sql-server datetimeoffset

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

SRSS带值范围的条件格式颜色?

我有一个sql报告服务报告,显示我们所有商店的销售额等,它包含一个显示%到预算值的列.我想要做的是,如果值是,>= .35那么使它成为单元格的背景Green,如果值是,< .35 and > .30那么Yellow值是< .30 then Red.

这真的是我的头脑,我似乎无法让它与所有3个范围一起工作.

我可以在单元格的背景颜色属性中加入表达式:

=IIF(Fields!ID__to_Budget.Value >= 0.35, "Green", "Red")
Run Code Online (Sandbox Code Playgroud)

这有效,但当然我没有任何黄色范围,在.35以下的任何东西都变成了红色.

我一直试图在背景颜色上做一个嵌套表达式,如下所示:

=iif( (Fields!ID__to_Budget.Value >= 0.35), "Green",
      ( iif(Fields!ID__to_Budget.Value <0.35 and > 0.30, "Yellow",
         iif(Fields!ID__to_Budget.Value < 0.30 "Red", "White") ) ) )
Run Code Online (Sandbox Code Playgroud)

但它抱怨"和> 0.30"部分的语法错误.

非常感谢Lance

sql reporting-services

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