我有一个 SSRS 数据集查询,其中包含一个名为 BENEFIT 的单值参数。我的数据源是 SQL SERVER 2014:以下查询给出错误“错误 [42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]必须声明标量变量“@BENEFIT”。
SELECT c.BENEFIT FROM CLAIM AS c
WHERE c.DOWNLOAD_DATE > '20150701' AND c.BENEFIT = (@ BENEFIT)
Run Code Online (Sandbox Code Playgroud)
该错误仅在使用 ODBC 连接时存在,使用直接连接就会消失。如果没有参数,查询将使用任一连接方法正确解析。
任何想法表示赞赏。
谢谢,阿拉斯代尔
我说“问题”是因为它没有破坏任何东西,这只是我在 SSMS 中注意到的一件小事情。
我运行以下命令:
SP_RENAME 'MyTable.OldName', 'NewName' , 'COLUMN'
然后在 SSMS 中键入以下内容:
SELECT [NewName] FROM MyTable;
现在,该[NewName]部件下方有一条红色波浪线,并带有“无效的列名称”警告。
为什么?旧名称是否以某种方式缓存在 SSMS 中?我的列重命名是否不完整?我真的不在乎这是否是 SSMS 的错误,但我想知道重命名列后我不应该执行“第 2 步”。
注意:如果我输入,SELECT [OldName] FROM MyTable;我不会收到警告,但它(显然)不会运行。
错误:
从XML加载脚本任务时出现异常:System.Exception:脚本任务使用此版本的Integration Services不支持的14.0版脚本.要运行包,请使用"脚本任务"创建新的VSTA脚本.在大多数情况下,当您在%SQL_PRODUCT_SHORT_NAME%Integration Services中打开SQL Server Integration Services包时,脚本会自动转换为使用受支持的版本.在Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(XmlElement elemProj,IDTSInfoEvents事件)
我正在做它所说的,但它没有帮助.
有解决方案吗
我们的一个构建服务器刚刚更新到最新的“用于数据库工具的 Microsoft SQL Server 更新”(版本 12.0.60629.0),现在与我们拥有的 SqlPackage.exe 版本不兼容(在 C:\Program Files (x86) 中) \Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\SqlPackage.exe)。SQL Server 数据库项目(针对 SQL Server 2014)构建没有错误,但是当我们尝试使用 SqlPackage.exe 将 .dacpac 部署到目标服务器时,我们收到以下错误:
The Element or Annotation class PersistedResolvableAnnotation does
not contain the Property class Length.
Run Code Online (Sandbox Code Playgroud)
果然,将 model.xml 文件(在 .dacpac 内)与最新版本的成功构建进行比较,我在一些 Annotation 元素下看到了额外的“Length”和“Offset”属性:
<Annotation Type="PersistedResolvableAnnotation" Name="[$(MyLinkedServer)].[$(MyDatabase)]|[dbo].[SomeTableName]">
<Property Name="TargetTypeStorage" Value="ISqlSynonymTarget" />
<Property Name="Length" Value="63" />
<Property Name="Offset" Value="37" />
</Annotation>
Run Code Online (Sandbox Code Playgroud)
这些构建服务器只有 Visual Studio 2012 和 2013,而不是2015。很明显,这个最新的 SSDT 更新破坏了与 SqlPackage 的兼容性(并且网上还有其他迹象表明同一问题),但我的问题是:我该如何解决它?
我宁愿不尝试降级到以前的 SSDT 版本,但会在必要时这样做。我应该安装最新的数据层应用程序框架并改用其 …
假设我在 SQL 2014 中有一个查询:
SELECT EmployeeName, EmployeeAddress, EmployeeAge FROM dbo.Employee
Run Code Online (Sandbox Code Playgroud)
我想动态地进行查询、循环并获取EmployeeName、EmployeeAddress和 等列的名称EmployeeAge。
我需要这个,因为我可以有另一个与此不同的查询,我还需要获取列名。
我正在尝试在 SQL Server 2014 的 XML 的根元素中添加xmlns MsgDtTm&MessageId属性。我正在尝试这个:
declare @TEMP table (ID nvarchar(max), Name nvarchar(max))
declare @count int =0
WHILE @count < 4
BEGIN
declare @name nvarchar(20),@id nvarchar(max)
select @name= SUBSTRING(CONVERT(varchar(255), NEWID()), 0, 7)
,@id= CHAR(ROUND(RAND() * 93 + 33, 0))
insert into @TEMP values(@id,@name)
set @count= @count +1
END
declare @msgId nvarchaR(24)
SET @msgId='11EXP'+REPLACE(convert(varchar(10),getdate(),103),'/','')+'1'
DECLARE @Xml xml
SET @Xml = (select * from @TEMP for xml path('DefaultName'), type)
;WITH XMLNAMESPACES (DEFAULT 'http://abc.go.com')
select GETDATE() as …Run Code Online (Sandbox Code Playgroud) 我使用以下查询生成了一个动态数据透视表,它可以工作,但列 (monthyear) 是按字母顺序排列的,但我希望它们按时间顺序排列 Monthyear 列是使用 SQL Server 2014 中的函数派生的
CREATE TABLE ##MyTable (Num VARCHAR(10), StartDate DATE, [Types] VARCHAR(10))
INSERT INTO ##MyTable VALUES
('AA1','2016-01-01', 'Type1'),('AA2','2017-01-04', 'Type1'),('AA3','2016-01-04', 'Type1'),('AA4','2017-01-01', 'Type2'),
('AA5','2017-01-10', 'Type3'),('AA6','2016-01-02', 'Type1'),('AA7','2017-01-05', 'Type1'),('AA8','2016-01-12', 'Type1'),
('AA9','2016-01-06', 'Type1'),('AA10','2016-01-10', 'Type3'),('AA11','2017-01-11', 'Type1'),('AA12','2016-01-09', 'Type2'),
('AA13','2016-08-06', 'Type3'),('AA14','2017-01-02', 'Type1'),('AA15','2016-01-05', 'Type1'),('AA16','2017-01-07', 'Type1'),
('AA17','2016-01-04', 'Type1'),('AA18','2017-01-03', 'Type3'),('AA19','2017-01-01', 'Type1'),('AA20','2016-01-10', 'Type2'),
('AA21','2018-01-02', 'Type3'),('AA22','2017-01-10', 'Type1'),('AA23','2017-01-11', 'Type1'),('AA24','2017-01-12', 'Type1'),
('AA25','2017-01-09', 'Type1'),('AA26','2017-01-03', 'Type3'),('AA27','2016-01-07', 'Type1'),('AA28','2017-01-03', 'Type3'),
('AA29','2016-01-09', 'Type3'),('AA30','2017-10-12', 'Type1'),('AA31','2016-01-08', 'Type1'),('AA32','2017-01-10', 'Type1'),
('AA33','2016-01-04', 'Type1'),('AA34','2016-01-03', 'Type1'),('AA35','2018-01-01', 'Type3'),('AA36','2016-01-12', 'Type3'),
('AA37','2017-01-12', 'Type1'),('AA38','2016-01-05', 'Type1'),('AA39','2017-01-01', 'Type1'),('AA40','2017-01-12', 'Type3'),
('AA41','2017-01-07', 'Type1'),('AA42','2017-01-04', 'Type3'),('AA43','2018-01-03', 'Type1'),('AA44','2016-01-08', 'Type1'),
('AA45','2016-09-10', 'Type1'),('AA46','2016-01-11', 'Type3'),('AA47','2017-01-10', …Run Code Online (Sandbox Code Playgroud) 我有下表:
--------------------------------------------
ID ParentID Item
--------------------------------------------
1 root
2 1 AA
3 1 BB
4 1 CC
5 1 DD
6 2 A1
7 6 A11
ff.
Run Code Online (Sandbox Code Playgroud)
我希望得到以下结果:
ID ParentID Item Level
---------------------------------------------
1 root 0
2 1 AA 1
3 1 BB 1
4 1 CC 1
5 1 DD 1
6 2 A1 2
7 6 A11 3
ff.
Run Code Online (Sandbox Code Playgroud)
level?是创建一个新列并添加一个公式或类似计算或可能的函数?t-sql?谢谢.
我对这两者感到困惑,并试图找出差异,但没有得到我正在寻找的特定内容。
我有下表:
-----------------------------------------
xDate xItem xCount
-----------------------------------------
2018-01-01 A 100
2018-01-01 B 200
2018-01-01 D 500
2018-01-02 C 200
2018-01-02 E 800
Run Code Online (Sandbox Code Playgroud)
我想在 xCount 字段的 MAX 值上为每个日期选择 TOP 2 值。所以,结果应该是:
-----------------------------------------
xDate xItem xCount
-----------------------------------------
2018-01-01 D 500
2018-01-01 B 200
2018-01-02 E 800
2018-01-02 C 200
Run Code Online (Sandbox Code Playgroud)
有没有人对此案有想法?
干杯,
sql-server-2014 ×10
sql-server ×6
sql ×4
t-sql ×3
database ×1
dataset ×1
group-by ×1
odbc ×1
parameters ×1
sp-rename ×1
sqlpackage ×1
ssis ×1
ssms ×1
vsta ×1
xml ×1