该OUTPUT条款的目的是什么?我已经阅读了该子句的MSDN文档OUTPUT,其中包括以下示例:
DELETE FROM dbo.table1
OUTPUT DELETED.* INTO @MyTableVar
WHERE id = 4 OR id = 2;
Run Code Online (Sandbox Code Playgroud)
从上面的查询中,似乎删除的记录被保存在一个名为的魔术表中deleted,并且查询会将这些记录从魔术deleted表加载到名为MyTableVar的表中..
我仍然不明白OUTPUT条款用法的目的.
作为另一个SQL示例:
USE AdventureWorks2012;
GO
DECLARE @MyTableVar table( NewScrapReasonID smallint,
Name varchar(50),
ModifiedDate datetime);
INSERT Production.ScrapReason
OUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDate
INTO @MyTableVar
VALUES (N'Operator error', GETDATE());
--Display the result set of the table variable.
SELECT NewScrapReasonID, Name, ModifiedDate FROM @MyTableVar;
--Display the result set of the table.
SELECT ScrapReasonID, Name, ModifiedDate
FROM …Run Code Online (Sandbox Code Playgroud) 我有一个存储过程,它计算两个坐标对之间的距离作为浮点数.我正在尝试使用它来过滤值列表但得到算术溢出错误.查询是:
SELECT * FROM Housing h WHERE convert(float, dbo.CalculateDistance(35, -94, h.Latitude, h.Longitude)) <= 30.0
Run Code Online (Sandbox Code Playgroud)
哪个错误:
消息8115,级别16,状态6,行1算术溢出错误将float转换为数据类型numeric.
存储过程供参考:
CREATE FUNCTION [dbo].[CalculateDistance]
(@Longitude1 DECIMAL(8,5),
@Latitude1 DECIMAL(8,5),
@Longitude2 DECIMAL(8,5),
@Latitude2 DECIMAL(8,5))
RETURNS FLOAT
AS
BEGIN
DECLARE @Temp FLOAT
SET @Temp = SIN(@Latitude1/57.2957795130823) * SIN(@Latitude2/57.2957795130823) + COS(@Latitude1/57.2957795130823) * COS(@Latitude2/57.2957795130823) * COS(@Longitude2/57.2957795130823 - @Longitude1/57.2957795130823)
IF @Temp > 1
SET @Temp = 1
ELSE IF @Temp < -1
SET @Temp = -1
RETURN (3958.75586574 * ACOS(@Temp) )
END
Run Code Online (Sandbox Code Playgroud)
还尝试将结果转换为十进制,但没有效果.
我在SSIS中使用Attunity Oracle连接器连接到远程Oracle Server.
在我的SSIS包中,我需要连接到Oracle数据库以根据datetime参数获取数据.
我按照这里的建议写了一个SELECT带参数的查询:
[Oracle Source].[SqlCommand]数据流的表达式设置为包变量(包含查询作为表达式)我很擅长这里,但是如果你[Oracle Source].[SqlCommand]在数据流中设置表达式,那么我在数据流任务中的"Oracle Source"中设置了什么Query?如何获取输出列并执行转换?
在设置有效的Oracle数据源之前,我无法执行包.
每个建议都说要[Oracle Source].[SqlCommand]在数据流中设置属性,但没有人提到如何配置Oracle源代码.我在这里错过了什么吗?
更新(2014/02/18) -
基于@billinkc的评论,我使用非参数查询创建了数据源,并在数据流中添加了表达式.当我执行包时,数据源内的查询更改为我的包变量表达式中的任何内容,但它会引发错误:
遇到OCI错误.ORA-00936:缺少表达
这是我WHERE的查询子句,带有可变时间戳 -
Where SL.RECEIVED_DATE = TO_DATE( @[User::Last_Run_Timestamp] , 'dd/mon/yyyy HH24:MI:SS')
WITH dept_count AS (
SELECT deptno, COUNT(*) AS dept_count
FROM emp
GROUP BY deptno)
SELECT e.ename AS employee_name,
dc.dept_count AS emp_dept_count
FROM emp e,
dept_count dc
WHERE e.deptno = dc.deptno;
Run Code Online (Sandbox Code Playgroud)
我们如何将从上面的查询中检索到的数据(意味着由于使用WITH CLAUSE而创建的临时表dept_count)映射到以下java类?
我的 Java 类具有以下属性:employee_name、emp_dept_count。
第一篇文章所以请你好.[SQL Server 2014]
我目前正在对表格进行选择,如下所示
select
ExerciseCultures.Name,
max (convert (decimal (10,2), cast(weight as float))) as [Max Weight (KG)]
from workoutsessions
join ExerciseCultures on workoutsessions.ExerciseID
= ExerciseCultures.ExerciseID
group by ExerciseCultures.Name
Run Code Online (Sandbox Code Playgroud)
返回31行,每个exerciseID一个,显示每个行的最高"权重"值.
我需要的是一个附加列,它还显示每个行的日期.日期列已经是每个行旁的workoutsessions表中的一列.
我尝试使用以下内容添加此日期列:
select
ExerciseCultures.Name,
max (convert (decimal (10,2), cast(weight as float))) as [Max Weight (KG)],
workoutsessions.date
from workoutsessions
join ExerciseCultures on workoutsessions.ExerciseID
= ExerciseCultures.ExerciseID
group by ExerciseCultures.Name,
workoutsessions.date
Run Code Online (Sandbox Code Playgroud)
但是这会返回286行 - 父表中的所有行.我需要的是原始查询结果,只有他们各自来自workoutsessions表的日期.
有什么想法吗?
非常感谢
在我们的 QA 虚拟环境中,包含多个 SQL Server,我想部署一个通过 Visual Studio 2010 维护的 SSIS 2012 包(ispac,项目部署)。目标 SSIS 服务器是 2012,但工作站上的客户端包括 SQL Server 2014。在工作站上执行 ispac 包并指定在 SQL Server 2012 上部署,部署没有任何错误。但是当在 SSIS 服务器上执行包时,我们会遇到如下错误
“包名称”:错误:包中的版本号无效。版本号不能大于当前版本
号。“包名称”:错误:从节点“DTS:属性”加载值“8”时出错。
“包名称”:错误:从版本 8 到版本 6 的包迁移失败,错误为 0xC001700A“包中的版本号无效。版本号不能大于当前版本号。”。
我所有的包(.dtsx)都有
<DTS:Property DTS:Name="PackageFormatVersion">6</DTS:Property>
Run Code Online (Sandbox Code Playgroud)
以及清单
<SSIS:Property SSIS:Name="PackageFormatVersion">6</SSIS:Property>
Run Code Online (Sandbox Code Playgroud)
看起来 SQL 2014 客户端或工作站将我的包升级到了 V8,即使我的目标服务器是 V6。当我直接从 SQL 2012 服务器(没有 SQL 2014)部署时,一切都按预期部署和运行。这是预期的结果吗?或有问题
我有一个庞大的SQL脚本,有很多批次(使用GO).
在某些情况下,我想停止整个执行此脚本.
我尝试使用NOEXEC,但我继续获取无效的对象错误,因为我的脚本包括创建数据并将数据添加到新的表和列.
我不想使用RAISERROR,有没有其他方法可以做到这一点?
我们知道,在 SQL Server 中,创建一个表的#意思是“本地临时表”,##意思是“全局临时表”。
但是当我创建一个如下表时:
create table ###MyTable(IntColumn int, ValueColumn varchar(100))
Run Code Online (Sandbox Code Playgroud)
该表是本地临时表还是全局临时表?我该如何测试?当我尝试select通过:
Select * from #MyTable -- SQL said it doesn't exists
Select * from ##MyTable -- SQL said it doesn't exists
Select * from ###MyTable -- I get the output
Run Code Online (Sandbox Code Playgroud)
如果第三种情况属实,这是否意味着这是名称为 的通用表###MyTable?我不会像其他所有物理表一样在我的 SSMS 表浏览器中看到这张表吗?
如果我开始在表名前添加多个 #(哈希)会发生什么?
我正在按照这些步骤部署Django项目
我的.htaccess是:
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
我的.fcgi:
#!/homeX/your_username/python27/bin/python27
import sys, os
# Add a custom Python path.
sys.path.insert(0, "/homeX/your_username/python27")
sys.path.insert(13, "/homeX/your_username/myproject")
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")
Run Code Online (Sandbox Code Playgroud)
当我跑来python2.7 mysite.fcgi证明它有效时,它会让我:
无法导入flup.server.fcgi
我该怎么导入flup.server.fcgi?
我使用的是:Django 1.8.7,flup 1.0.3,python 2.7,psycopg2为postgreSQL,并使用一切都下载pip.
有一个数据流任务,由excel源和sql目的地组成.当单独执行数据流任务时它运行良好.如果我执行此数据流在每个循环内部aa,它给出以下错误
[Excel Source [17]]错误:SSIS错误代码DTS_E_OLEDBERROR.发生OLE DB错误.错误代码:0x80040E37.
[Excel Source [17]]错误:打开"'Sheet Data $'"的行集失败.检查数据库中是否存在该对象.
[SSIS.Pipeline]错误:"Excel Source"验证失败并返回验证状态"VS_ISBROKEN".
有人有类似的问题!?
sql-server ×5
sql ×4
ssis ×3
t-sql ×2
.htaccess ×1
attunity ×1
deployment ×1
django ×1
excel ×1
fastcgi ×1
flup ×1
hibernate ×1
math ×1
oracle ×1
python ×1
ssis-2008 ×1
temp-tables ×1
with-clause ×1