Tag: tsql

存储过程中需要“SET NOCOUNT OFF”吗?

我有许多程序,已经set nocount on 。 是否有必要在存储过程结束时closures它? 例如: create procedure DummyProc as begin set nocount on … set nocount off end

临时函数或T-SQL中的存储过程

有没有机会在MS SQL 2005上创build临时存储过程或函数? 我只想在我的查询中使用这个存储过程,所以执行后它将不见了。 我有一个查询,我想执行一些数据。 但是对于每个表我都会处理这个命令,我需要改变它的一些部分。 所以我想我会创build一个临时的SP,它会返回我提供的参数(比如表名等等)的查询,而不是EXEC执行这个查询。 而这个存储过程将不会对我有用,所以我想暂时使用它,以便当我结束执行我的查询 – 它将消失。

完全自动化的SQL Server还原

我不太熟悉SQL Server命令。 我需要一个脚本来从.bak文件恢复数据库并将logical_data和logical_log文件移动到特定的path。 我可以: restore filelistonly from disk='D:\backups\my_backup.bak' 这将给我一个列LogicalName的结果集,接下来我需要在恢复命令中使用结果集中的逻辑名称: restore database my_db_name from disk='d:\backups\my_backups.bak' with file=1, move 'logical_data_file' to 'd:\data\mydb.mdf', move 'logical_log_file' to 'd:\data\mylog.ldf' 如何将第一个结果集中的逻辑名称捕获到可以提供给“move”命令的variables中? 我认为解决scheme可能是微不足道的,但我是SQL Server的新手。

在表中为每个ID在另一个表中插入行

我试图寻找类似的解决scheme,但没有看到一个,所以我想知道什么是完成以下最好的方法。 我有一个有1700万行的表,都有一个唯一的ID。 我们最近创build了一个新的表,这个表将与上一个表一起使用,其中新表的外键是旧表的唯一ID。 例如。 表1 – id,field1,field2,field3 …表2 – table1.id,field1 … 问题是,因为我们正在把它迁移到一个实际的环境中,所以我们需要用表1中的每一行包含来自表1的id的行来填充表2.现在需要表1-1的test,null表2对于table1中的每一行,都有:1,null,…等等。 主要问题是表1中的ID不是全部顺序,所以我们必须从表1中读取,然后根据find的ID插入到表2中。 有没有更简单的方法来解决这个问题? 在此先感谢乔 另外为了澄清,表2将是新数据,并且它将从表1中唯一包含的是保持外键关系的id 这也是SQL Server 2000

在SQL中select一个列而不是在分组依据

我一直在试图find一些关于如何select一个不包含在SQL中的Group By语句中的非聚合列的信息,但是到目前为止我没有发现任何东西似乎回答了我的问题。 我有一张桌子,里面有三个我想要的东西。 一个是创builddate,一个是通过特定的Claim ID对logging进行分组的ID,最后是PK。 我想查找每组索赔ID中具有最大创builddate的logging。 我selectMAX(创builddate)和Claim ID(cpe.fmgcms_cpeclaimid),并按照Claim ID进行分组。 但我需要从这些logging(cpe.fmgcms_claimid)的PK,如果我尝试将它添加到我的select子句,我得到一个错误。 而且我不能把它加到我的小组中,因为那样它就会抛弃我想要的分组。 有没有人知道这个解决方法? 这是我的代码示例: Select MAX(cpe.createdon) As MaxDate, cpe.fmgcms_cpeclaimid from Filteredfmgcms_claimpaymentestimate cpe where cpe.createdon < 'reportstartdate' group by cpe.fmgcms_cpeclaimid 这是我想要得到的结果: Select MAX(cpe.createdon) As MaxDate, cpe.fmgcms_cpeclaimid, cpe.fmgcms_claimid from Filteredfmgcms_claimpaymentestimate cpe where cpe.createdon < 'reportstartdate' group by cpe.fmgcms_cpeclaimid

如何获取getdate()的date部分?

我有一个具有CreationDate字段的SQL表。 我在计算列规格公式中有getdate() 。 我想知道如何得到date部分,即'2012-08-24'而不是'2012-08-24 10:45:17.740'。

确定SQL Server中用户创build的对象

我正试图通过我们的开发数据库,​​并清理了一些旧的testing过程/表。 是否有可能确定SQL Server 2005数据库中的用户创build的对象? 如果是这样,我将如何去find这些信息? 编辑:只是想澄清,有问题的对象已经存在。 设置审计和触发器可能不会对我很好。 我想我主要是在寻找一种方法来使用系统表/视图来获取信息。

在T-SQL中将Datetime截断为Second(Remove Milliseconds)

缩短包含毫秒的date时间的最佳方法是什么? 例如2012-01-25 17:24:05.784到2012-01-25 17:24:05

将Xml转换为表SQL Server

我想知道如何读取一个XML数据并将其转换为TSQL中的表? 例如: <row> <IdInvernadero>8</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>8</IdCaracteristica1> <IdCaracteristica2>8</IdCaracteristica2> <Cantidad>25</Cantidad> <Folio>4568457</Folio> </row> <row> <IdInvernadero>3</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>1</IdCaracteristica1> <IdCaracteristica2>2</IdCaracteristica2> <Cantidad>72</Cantidad> <Folio>4568457</Folio> </row> 至 8 3 8 8 25 4568457 3 3 1 2 72 4568457 谢谢。

有没有办法同时select和更新行?

我想根据一个简单的标准更新一组行,并获得已更改PK的列表。 我以为我可以做这样的事情,但担心可能的并发问题: SELECT Id FROM Table1 WHERE AlertDate IS NULL; UPDATE Table1 SET AlertDate = getutcdate() WHERE AlertDate IS NULL; 如果这是包装在一个事务中是否有可能发生的并发问题? 还是有更好的方法来做到这一点?