我想用增量号更新我的列CODE_DEST.我有:
CODE_DEST RS_NOM
null qsdf
null sdfqsdfqsdf
null qsdfqsdf
Run Code Online (Sandbox Code Playgroud)
我想将其更新为:
CODE_DEST RS_NOM
1 qsdf
2 sdfqsdfqsdf
3 qsdfqsdf
Run Code Online (Sandbox Code Playgroud)
我试过这段代码:
UPDATE DESTINATAIRE_TEMP
SET CODE_DEST = TheId
FROM (SELECT Row_Number() OVER (ORDER BY [RS_NOM]) AS TheId FROM DESTINATAIRE_TEMP)
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为 )
我也尝试过:
WITH DESTINATAIRE_TEMP AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY [RS_NOM] DESC) AS RN
FROM DESTINATAIRE_TEMP
)
UPDATE DESTINATAIRE_TEMP SET CODE_DEST=RN
Run Code Online (Sandbox Code Playgroud)
但由于结合,这也行不通.
如何使用ROW_NUMBER()
SQL Server 2008 R2中的函数更新列?
我在数据库DB中有一个表ABC.我想在同一个DB中创建名为ABC_1,ABC_2,ABC_3的ABC副本.如何使用Management Studio(最好)或SQL查询来做到这一点?
这适用于SQL Server 2008 R2.
我使用以下内容在我的存储过程中搜索字符串:
use DBname
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%xxx%'
Run Code Online (Sandbox Code Playgroud)
是否可以轻松修改上述内容,以便在特定的数据库"DBname"中搜索表名?
我试图计算地图上两个位置之间的距离.我存储了我的数据:经度,纬度,X POS,Y POS.
我以前使用过下面的代码片段.
DECLARE @orig_lat DECIMAL
DECLARE @orig_lng DECIMAL
SET @orig_lat=53.381538 set @orig_lng=-1.463526
SELECT *,
3956 * 2 * ASIN(
SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2)
+ COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180)
* POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 / 2), 2) ))
AS distance
--INTO #includeDistances
FROM #orig dest
Run Code Online (Sandbox Code Playgroud)
不过我不相信这个数据,它似乎给出了稍微不准确的结果.
一些示例数据,以备您需要时使用
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决我的代码,我不介意你是否想要修复我已经拥有的东西,如果你有一种新方法可以实现这一点,那就太棒了.
请说明您的结果所在的计量单位.
我有一个包含Xml
列的表:
SELECT *
FROM Sqm
Run Code Online (Sandbox Code Playgroud)
xml
一行数据的样本将是:
<Sqm version="1.2">
<Metrics>
<Metric id="TransactionCleanupThread.RecordUsedTransactionShift" type="timer" unit="µs" count="1" sum="21490" average="21490" minValue="73701" maxValue="73701" >73701</Metric>
<Metric id="TransactionCleanupThread.RefundOldTrans" type="timer" unit="µs" count="1" sum="184487" average="184487" minValue="632704" maxValue="632704" >632704</Metric>
<Metric id="Database.CreateConnection_SaveContextUserGUID" type="timer" unit="µs" count="2" sum="7562" average="3781" minValue="12928" maxValue="13006" standardDeviation="16" >12967</Metric>
<Metric id="Global.CurrentUser" type="timer" unit="µs" count="6" sum="4022464" average="670411" minValue="15" maxValue="13794345" standardDeviation="1642047">2299194</Metric>
<Metric id="Global.CurrentUser_FetchIdentityFromDatabase" type="timer" unit="µs" count="1" sum="4010057" average="4010057" minValue="13752614" maxValue="13752614" >13752614</Metric>
</Metrics>
</Sqm>
Run Code Online (Sandbox Code Playgroud)
对于这些数据,我希望:
SqmId id type unit count sum minValue maxValue standardDeviation Value
===== =================================================== ===== ==== …
Run Code Online (Sandbox Code Playgroud) 我在数据库中工作,我通过数据加载器在原始表中加载数据.但今天数据加载器因未知原因而陷入困境.然后我从Windows任务管理器停止了数据加载器.但后来我再次尝试在原始表中加载数据,但发现它已锁定,我无法对其进行任何操作.我尝试重新启动SQL Server服务,但它没有解决.我没有权限杀死此服务器上的进程.
下面是SQL Server显示的消息.
执行Transact-SQL语句或批处理时发生异常.(Microsoft.SqlServer.ConnectionInfo)
课程地点:
在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(字符串的SqlCommand,ExecutionTypes executionType)
在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands,ExecutionTypes executionType)
在Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery (StringCollection查询)
在Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection查询,布尔includeDbContext)
在Microsoft.SqlServer.Management.Smo.NamedSmoObject.RenameImplWorker(字符串newName)将
在Microsoft.SqlServer.Management.Smo.NamedSmoObject. RenameImpl(String newName)===================================
超出锁定请求超时时间.参数@objname是不明确的,或者声明的@objtype(OBJECT)是错误的.(.Net SqlClient数据提供程序)
服务器名称:162.44.25.59错误号码:1222
严重性:16状态:56
过程:sp_rename行号:282
我的SQL Server版本是2008 R2.
我正在尝试编写以下内容,以便获得不同的NumUsers,如下所示:
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
Run Code Online (Sandbox Code Playgroud)
管理工作室对此并不感到高兴.当我删除DISTINCT
关键字时,错误消失,但它不会是一个独特的计数.
DISTINCT
在分区函数中似乎不可能.我如何寻找独特的计数?我是否使用更传统的方法,例如相关子查询?
进一步研究一下,也许这些OVER
函数与Oracle的工作方式不同,它们不能用于SQL-Server
计算运行总计.
我在SQLfiddle上添加了一个实例,我尝试使用分区函数来计算运行总计.
我们有一些大型数据库(20GB +),其中大部分都包含静态查找数据.因为我们的应用程序对这些数据库中的表执行连接,所以它们必须是每个开发人员本地SQL Server的一部分(即它们不能托管在中央的共享数据库服务器上).
我们计划复制一组规范的实际SQL Server数据库文件(*.mdf和*.ldf)并将它们附加到每个开发人员的本地数据库.
找出本地SQL Server实例的数据目录的最佳方法是什么,以便我们可以将文件复制到正确的位置?这将通过自动化过程完成,因此我必须能够从构建脚本中查找和使用它.
sql sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2
是SQL Server中的声明ACID
吗?
给定一个未包装在BEGIN TRANSACTION
/ COMMIT TRANSACTION
中的T-SQL语句是该语句的操作:
我在实时系统中有一个声明似乎违反了查询规则.
实际上我的T-SQL语句是:
--If there are any slots available,
--then find the earliest unbooked transaction and mark it booked
UPDATE Transactions
SET Booked = 1
WHERE TransactionID = (
SELECT TOP 1 TransactionID
FROM Slots
INNER JOIN Transactions t2
ON Slots.SlotDate = t2.TransactionDate
WHERE t2.Booked = 0 --only book it if it's currently unbooked
AND Slots.Available > 0 --only book …
Run Code Online (Sandbox Code Playgroud) 我想将数据从一个数据库移动到另一个数据库,同时将标识列值保留在旧数据库中.当我运行向导时,我收到验证错误"无法插入只读列"ChannelID".
其中ChannelID是该表上的标识列.如何覆盖身份功能以便能够导入数据?
sql-server ×9
sql ×5
t-sql ×3
database ×1
deadlock ×1
locking ×1
math ×1
sql-update ×1
sqlxml ×1
xml ×1