我知道这个问题多次被问过以前版本的SQL Server,但我想知道这是否在SQL Server 2014中变得更容易了.
我熟悉这里显示的其他版本的技术
如何在SQL Server 2005中回滚UPDATE查询?
所以问题是:在SQL Server 2014中是否有任何允许回滚和UPDATE查询的功能在以前的版本中是不可用的?
我正在谈论已提交的命令 - 我知道如果查询在事务内部,您可以回滚.
我们有完整的,差异的和事务日志备份,但我们真的希望避免将备份恢复到辅助数据库等的恢复方案......
我有一个SQL Server 2014实例和一个用C#编写的客户端应用程序.
从这个应用程序,我使用下面的代码检索数据.使用一些经验测试,似乎正在使用服务器端游标.对于我的特定用例,我想使用客户端游标.如何才能做到这一点?
如何使用客户端游标进行连接?
<connectionStrings>
<clear/>
<add name="myDB"
connectionString="Server=SERVER\INSTANCE;Database=test"
providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
C#客户端代码:
using (var connection = OpenConnection())
{
using (var command = connection.CreateCommand())
{
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "dbo.my_stored_procedure";
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
object retrievedObject = reader.GetValue(0);
// Use object...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有用的链接:
我在SQL Server 2014中有一个使用此模式的表:
OccuredDate (date) TypeID (int)
2014-1-1 1
2014-1-2 1
2014-2-5 4
2015-5-23 2
2015-6-3 3
Run Code Online (Sandbox Code Playgroud)
...它有数千行由日期和类型ID组成,跨越多年.
因此,我可以将其绘制到图表组件,我正在尝试构建一个查询,在给定年份1)每月返回一行2)计算给定TypeID的TypeID实例的总数.图表组件更喜欢列类型计数.
所以对于"2014",它看起来像这样:
MonthDate TypeOne TypeTwo TypeThree TypeFour
2014-1-1 2 0 0 0
2014-2-1 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
要么:
Year Month TypeOne TypeTwo TypeThree TypeFour
2014 Jan 2 0 0 0
2014 Feb 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
花了大半夜的时间,但没有运气.是否有一些黑暗的SQL魔法可以做到这一点?
谢谢!
我想构建一个SQL Server数据库,其中一个表将包含200.000.000条记录.
该表有2列:Id和Value,其中Id是PrimaryKey并被索引.
我的问题是关于SQL Server的性能,我可以通过主键获得一个值多快?
我正在使用 SQL Server Management Studio 2016(预览版)提供的 sqlpackage.exe 将数据库发布到 SQL Azure(从以前从本地数据库服务器导出的 bacpac 文件)。
问题是这个数据库是用 S0 服务目标创建的(我认为这是默认的)。
我希望能够使用 sqlpackage.exe 在导入命令中设置目标的服务目标。
我已经搜索了答案,但在此处提供的 sqlpackage.exe 文档中找不到任何内容:
https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx
我看到管理工作室 UI 允许设置服务目标,我知道它在下面使用 sqlpackage.exe。
任何人都知道如何完成这项工作?
sql-server azure sql-server-2014 sql-server-2016 azure-sql-database
你能告诉我如何避免下面提到的例外吗?
INSERT INTO [Migrated].[dbo].[Cities] (Name, ZipCode)
SELECT DISTINCT
a.City, a.ZipCode
FROM
[Legacy].[dbo].[Ziplist] AS a
WHERE
(a.City IS NOT NULL AND a.ZipCode IS NOT NULL);
Run Code Online (Sandbox Code Playgroud)
例外:
无法将值NULL插入列'IsDeleted',表'Migrated.dbo.Cities'; 列不允许空值.INSERT失败.
初始数据示例:
Project | Field1 | Field2 | Field3 |
--------------------------------------------------------------------
Project 1 | 0 | 1 | 2 |
Project 2 | 2 | 0 | 1 |
Run Code Online (Sandbox Code Playgroud)
使用SQL Server 2014,我有表,我需要在ssrs参数中获取依赖于值的数据.查询样本.
Select *
Where IF@Scenario=1, then Field1 < 2
IF@Scenario=2, then Field2 < 2
IF@Scenario=3, then Field3 < 2
From Table1
Run Code Online (Sandbox Code Playgroud) 我有一个表,其中的列包含文件的路径。该路径是绝对路径,该列的值如下所示:C:\CI\Media\animal.jpg。
该表看起来像这样,除了有很多行,所以手工编辑是不实际的:
`+----+-----------------------------------+
| ID | Path |
+----+-----------------------------------+
| 1 | C:\CI\Media\sushi.jpg |
| 2 | C:\CI\Media\animal.jpg |
| 3 | C:\CI\Media\Tuscany Trip\pisa.png |
+----+-----------------------------------+`
Run Code Online (Sandbox Code Playgroud)
路径是nvarchar(260)
我想做的是运行一个查询,该查询将更新每条记录,以便每条记录的路径都替换C:\CI\为C:\CI\Net,最后得到一个看起来像这样的表:
`+----+---------------------------------------+
| ID | Path |
+----+---------------------------------------+
| 1 | C:\CI\Net\Media\sushi.jpg |
| 2 | C:\CI\Net\Media\animal.jpg |
| 3 | C:\CI\Net\Media\Tuscany Trip\pisa.png |
+----+---------------------------------------+`
Run Code Online (Sandbox Code Playgroud)
有没有一种格式化查询的格式,该查询将更新每条记录,但会根据现有值进行更新(用每条记录替换该C:\CI部分,C:\CI\Net同时保留其余值),而不是将每列设置为相同的值,例如正常更新表设置列=值?
我需要有一个计算列Site_Condition,该列将基于Condition_Score同一表中另一列的数值返回一个文本值。
以下是我尝试插入“计算列规范”中的内容,但收到此消息:
验证公式时出错
我还尝试过使用下面的相同语法从脚本“创建表为”创建它,例如:Site_Condition AS(IF ....)
我究竟做错了什么?
IF([Condition_Score]<0.51,'Very poor',(ELSE
IF([Condition_Score]<1.51,'Poor', ELSE
IF([Condition_Score]<2.51,'Moderate',ELSE
IF([Condition_Score]<3.51,'Good',ELSE
IF([Condition_Score]>3.51,'Excellent'))))))
Run Code Online (Sandbox Code Playgroud)