我的后台进程是批量更新/插入数据.我需要在临时表中存储一些数据供以后使用.我有5个临时表.如果我使用临时表(CREATE TABLE #T),则需要2-3秒,但如果我使用表变量(DECLARE @T TABLE)则需要超过90秒.这是一个示例临时表,
CREATE TABLE #TempAttributes
(
AID int
,PID int
,ATypeValue nvarchar(MAX)
,ATypeKey nvarchar(MAX)
,PLanguageID int
);
Run Code Online (Sandbox Code Playgroud)
为什么表变量很慢?
目前,我正在使用Visual Studio 2012和VST的SSDTBI为SQL Server 2012创建SSIS包.这很好用(但SSIS包设计器中存在很多错误).
微软刚刚发布了针对VS2013的SSDTBI,并且想知道这是否只适用于SQL Server 2014.我是否能够编辑我在VS2012中创建的相同SSIS包,并且仍然可以在SQL Server 2012中使用它们?
更新:从这篇博客来看,似乎SQL Server 2012的SSIS仍然存在问题.
ssis sql-server-2012 visual-studio-2012 visual-studio-2013 sql-server-2014
所以我在我的数据库中有这个自引用表Nodes,用于存储组织的树结构:
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](max) NULL,
[ParentId] [int] NULL,
(+ other metadata columns)
Run Code Online (Sandbox Code Playgroud)
从中我使用HIERARCHYID来管理基于访问级别等的查询.我为此编写了一个表值函数tvf_OrgNodes,很久以前,在SQL Server 2008到2014年进行了测试和工作,从那以后它一直保持不变,因为它做得很好.然而,现在已经发生了一些变化,因为从路径nvarchars("/ 2/10/8 /")解析HIERARCHYID会导致以下错误,在Google上只匹配4次点击(!):
Msg 6522, Level 16, State 2, Line 26
A .NET Framework error occurred during execution of user-defined routine or aggregate "hierarchyid":
Microsoft.SqlServer.Types.HierarchyIdException: 24000: SqlHierarchyId operation failed because HierarchyId object was constructed from an invalid binary string.
Run Code Online (Sandbox Code Playgroud)
当改变函数只返回NVARCHAR而不是实际的HIERARCHYID时,路径都看起来很好,从/根开始,接着是/2/等等.简单的选择HIERARCHYID::Parse('path')也可以正常工作.我实际上通过将路径保持为字符串一直工作,直到INSERT进入函数结果,解析那里的路径.但是,当我尝试将重新获得的数据插入到相同模式的表中时,我得到了同样的错误.
所以问题是,这是一个错误,还是有人知道使用HIERARCHYIDs的任何(新的?)陷阱< - >可能导致这种情况的路径字符串?我不知道整个二进制字符串的想法来自哪里.
这是TVF的代码:
CREATE FUNCTION [dbo].[tvf_OrgNodes] ()
RETURNS @OrgNodes TABLE …Run Code Online (Sandbox Code Playgroud) 试图在其他地方找不到运气。
我正在尝试删除磁盘上不再存在的数据库,但仍显示在SSMS 2014的对象资源管理器中
那么,如何从对象资源管理器中“清除它们”呢?
我需要手动将它们从sys.master_files中删除吗?
例外是:
Drop failed for Database 'aspnet-Blawblaw-20141027015559'. (Microsoft.SqlServer.Smo)
------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=12.0.2000.8+((SQL14_RTM).140220-1752)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Drop+Database&LinkId=20476
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Smo.SqlSmoObject.DropImpl()
at Microsoft.SqlServer.Management.Smo.Database.Drop()
at Microsoft.SqlServer.Management.SqlManagerUI.DropObjects.DoDropObject(Int32 objectRowIndex)
at Microsoft.SqlServer.Management.SqlManagerUI.DropObjects.DropAllObjects(Boolean stopOnError)
===================================
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)
at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries)
at Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection queries, Boolean includeDbContext)
at Microsoft.SqlServer.Management.Smo.SqlSmoObject.DropImplWorker(Urn& urn)
at Microsoft.SqlServer.Management.Smo.SqlSmoObject.DropImpl()
===================================
Unable to open the physical file "C:\Projects\BlawBlaw\BlawBlaw\App_Data\aspnet-BlawBlaw-20141027015559.mdf". Operating system error 3: …Run Code Online (Sandbox Code Playgroud) 我在数据库中做了一些简单的步骤
步骤1:
CREATE TYPE [dbo].[TempType] AS TABLE([MM] [INT])
Run Code Online (Sandbox Code Playgroud)
第2步:
CREATE PROC [DBO].[TEMP1] (@MYTAB TEMPTYPE READONLY)
AS
BEGIN
SELECT *
FROM @MYTAB
END
Run Code Online (Sandbox Code Playgroud)
第3步:
CREATE TABLE #TEMP11 ([MM] [INT])
INSERT INTO #TEMP11
SELECT 1 UNION
SELECT 2 UNION
SELECT 3
SELECT * FROM #TEMP11
EXEC TEMP1 #TEMP11
Run Code Online (Sandbox Code Playgroud)
结果:
(4 row(s) affected)
(4 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
消息206,级别16,状态2,过程temp1,行0
操作数类型冲突:nvarchar与TempType不兼容
我在另外两台服务器上做了它,它给出了相同的消息.我的代码中有什么错误.我也使用过SQL Server 2008 R2和SQL Server 2014.
我用谷歌搜索了几天,但是无法正常工作.
我正在使用SQL 2014和adventureworks数据库.
我有SAS 9.3.
我尝试了不同的ODBC设置,如设置默认数据库,使用Windows登录或SQL登录.不同的司机.仍然没有,使用完整和noprompt:
libname mylib odbc complete='TrustedConnection=True;DSN=test2;SERVER=MYSERVER\SQLEXPRESS;DATABASE=AdventureWorks2012;'stringdates=yes;
proc print data=mylib.Person;
Run Code Online (Sandbox Code Playgroud)
错误信息:
注意:Libref MYLIB已成功分配如下:引擎:ODBC物理名称:test2
注49-169:在未来的SAS版本中,带引号的字符串后标识符的含义可能会更改.建议在带引号的字符串和后续标识符之间插入空格.
注意:由于错误,SAS系统停止处理此步骤.注意:使用PROCEDURE PRINT(总处理时间):实时5.48秒cpu时间0.34秒
700 proc打印数据= mylib.Person; 错误:文件MYLIB.Person.DATA不存在
我已尝试过Person.Person并且也在连接字符串中使用schema=Person.
但是,如果我使用以下它可以工作.我把默认数据库放在ODBC中:
proc sql;
connect to odbc as mycon
(required = "dsn=awlt32;uid=sa;password=mypassword");
select *
from connection to mycon
(select *
from Person.Person);
disconnect from mycon;
quit;
Run Code Online (Sandbox Code Playgroud)
我知道这是一个非常简单的问题,但无论我找到什么样的代码,我似乎都无法使它工作.提前致谢.
这是我的情景.
SQL Server 2014标准版,我有一个具有SQL_Latin1_General_CP437_BIN2区分大小写的排序规则的数据库.
我想执行一个LIKE查询,它应该返回输出而不管区分大小写.
例如:如果我执行Like查询以使用userName'John'获取记录,它也应该返回行,而不管区分大小写"JOHN","John","john","joHN".
我尝试使用Lcase,Ucase但是我收到了错误
Msg 195,Level 15,State 10,Line
4'LCASE'不是公认的内置函数名.
这是我的示例查询
SELECT TOP 300 *
FROM
(SELECT
userNo, userName, Place, Birthdate
FROM usertable
WHERE personid = 2
AND (Name LIKE LCASE('%john%'))
UNION
SELECT
userNo, userName, Place, Birthdate,
FROM usertable2
WHERE personid = 2
AND (Name LIKE LCASE( '%john%') OR Place LIKE LCASE('%NY%')) ) a
ORDER BY
userNo
Run Code Online (Sandbox Code Playgroud)
伙计们帮助我提出宝贵的建议,我对使用基于校对的数据库感到困惑.
sql-server collation case-insensitive sql-like sql-server-2014
我有以下问题:当我尝试将我的SSAS项目(带有多维数据集,维度和所有爵士乐)部署到sql-server时,它会抛出错误说
您无法部署模型,因为数据库部署服务器未在多维模式下运行.
我是新手,所以这可能是一个愚蠢的问题,但我如何将数据库模式从表格更改为多维?
sql-server ssas multidimensional-array tabular sql-server-2014
我已经搜索了几个星期的高低,现在试图找到我的问题的解决方案.
我的问题如下:
A有一张桌子,上面有车辆遥测提供者的起点和终点坐标和日期.
我需要将这些合并到一个列中,以便我们的报告解决方案能够绘制它们.
一些示例数据如下:
DECLARE @TblVar AS TABLE([ServiceID] INT
,[StartDate] DATETIME
,[StartLocation] VARCHAR(255)
,[StartLat] FLOAT
,[StartLong] FLOAT
,[EndDate] DATETIME
,[EndLocation] VARCHAR(255)
,[EndLat] FLOAT
,[EndLong] FLOAT);
INSERT INTO @TblVar
VALUES (48322, '2016-11-28 05:38:37.000','Weaver Road,Leicester',52.5753273,-1.306842,'2016-11-28 05:40:02.000','Earl Street,Leicester',52.5781,-1.3048711)
,(48322, '2016-11-28 05:44:05.000','Earl Street,Leicester',52.5780996,-1.3048768,'2016-11-28 05:53:52.000','Arbor Road,Leicester',52.5533448,-1.2349645)
,(48322, '2016-11-28 09:14:25.000','Arbor Road,Leicester',52.5533833,-1.2349445,'2016-11-28 09:15:54.000','Coventry Road,Leicester',52.5522865,-1.2370495)
,(48322, '2016-11-28 09:16:05.000','Coventry Road,Leicester',52.552292,-1.2370598,'2016-11-28 09:20:41.000','Arbor Road,Leicester',52.553338,-1.2352033)
,(48322, '2016-11-28 13:34:36.000','Arbor Road,Leicester',52.553388,-1.2352651,'2016-11-28 13:53:29.000','Narborough Road South,Leicester',52.597422,-1.1832976)
,(48322, '2016-11-28 13:55:36.000','Narborough Road South,Leicester',52.597352,-1.183299,'2016-11-28 13:58:51.000','Hazel Drive,Leicester',52.6020946,-1.1760238)
,(48322, '2016-11-28 14:11:53.000','Hazel Drive,Leicester',52.6020853,-1.1760053,'2016-11-28 14:24:40.000','Arbor Road,Leicester',52.5533118,-1.2352118)
,(48322, '2016-11-28 14:29:48.000','Arbor Road,Leicester',52.5532741,-1.2352471,'2016-11-28 14:30:39.000','Coventry Road,Leicester',52.552955,-1.2363475) …Run Code Online (Sandbox Code Playgroud) 我有一张测量表.每分钟进行一次测量.我需要为同一个device_id连续多次选择具有相同sample_value的行.
这是初始数据:
sample_date sample_time device_id sample_value
20180701 1010 111 11
20180701 1011 111 12
20180701 1012 111 13
20180701 1013 222 11
20180701 1014 222 11
20180701 1015 222 12
20180701 1016 111 12
20180701 1017 111 11
20180701 1018 222 13
20180701 1019 222 12
20180701 1020 222 13
20180701 1021 222 12
20180701 1022 222 12
20180701 1023 111 12
20180701 1024 111 13
20180701 1025 111 13
20180701 1026 111 12
20180701 1027 111 13
20180701 1028 …Run Code Online (Sandbox Code Playgroud) sql-server-2014 ×10
sql-server ×5
sql ×3
t-sql ×2
collation ×1
hierarchyid ×1
sas ×1
sql-like ×1
ssas ×1
ssis ×1
ssms ×1
tabular ×1