标签: sql-server

如何查找SQL Server实例的数据目录?

我们有一些大型数据库(20GB +),其中大部分都包含静态查找数据.因为我们的应用程序对这些数据库中的表执行连接,所以它们必须是每个开发人员本地SQL Server的一部分(即它们不能托管在中央的共享数据库服务器上).

我们计划复制一组规范的实际SQL Server数据库文件(*.mdf和*.ldf)并将它们附加到每个开发人员的本地数据库.

找出本地SQL Server实例的数据目录的最佳方法是什么,以便我们可以将文件复制到正确的位置?这将通过自动化过程完成,因此我必须能够从构建脚本中查找和使用它.

sql sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2

68
推荐指数
7
解决办法
12万
查看次数

如何将datetime插入SQL数据库表?

如何将日期时间插入SQL数据库表?有没有办法通过C#/ .NET中的insert命令插入此查询?

.net sql sql-server sql-server-2005 c#-3.0

68
推荐指数
3
解决办法
56万
查看次数

如何在SQL Server中检查IDENTITY_INSERT是否设置为ON或OFF?

我已经搜索过这个,但是看起来很容易得到那些不理解这个问题的人的答案.

采用以下语法:

SET IDENTITY_INSERT Table1 ON
Run Code Online (Sandbox Code Playgroud)

你怎么做更像这样的事情:

GET IDENTITY_INSERT Table1
Run Code Online (Sandbox Code Playgroud)

我不想对数据库中的数据或设置做任何事情以获取此信息.谢谢!

sql sql-server identity-insert

68
推荐指数
4
解决办法
8万
查看次数

从多列中选择最小值的最佳方法是什么?

给出SQL Server 2005中的下表:

ID   Col1   Col2   Col3
--   ----   ----   ----
1       3     34     76  
2      32    976     24
3       7    235      3
4     245      1    792
Run Code Online (Sandbox Code Playgroud)

编写产生以下结果的查询的最佳方法是什么(即产生最终列的查询 - 包含每行的Col1,Col2和Col3中的minium值的)?

ID   Col1   Col2   Col3  TheMin
--   ----   ----   ----  ------
1       3     34     76       3
2      32    976     24      24
3       7    235      3       3
4     245      1    792       1
Run Code Online (Sandbox Code Playgroud)

更新:

为了澄清(正如我在演讲中所说),在真实场景中,数据库已正确规范化.这些"数组"列不在实际表中,而是在报表中所需的结果集中.新要求是报告还需要此MinValue列.我无法更改基础结果集,因此我期待T-SQL获得一个方便的"走出监狱卡".

我尝试了下面提到的CASE方法并且它有效,尽管它有点麻烦.它也比答案中说明的更复杂,因为你需要满足同一行中有两个最小值的事实.

无论如何,我想我会发布我目前的解决方案,鉴于我的限制,它的效果非常好.它使用UNPIVOT运算符:

with cte (ID, Col1, Col2, Col3)
as
(
    select ID, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005 min

67
推荐指数
9
解决办法
20万
查看次数

如何使用带有IF EXISTS子查询的SQL Select语句?

如何使用IF EXISTS语句(SQL Server)从子查询中选择布尔值?

它应该是这样的:

SELECT 
  TABEL1.Id, 
  NewFiled = (IF EXISTS(SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABEL1.ID) 
                 SELECT 'TRUE' 
              ELSE 
                 SELECT 'FALSE') 
FROM TABEL1
Run Code Online (Sandbox Code Playgroud)

sql sql-server exists

67
推荐指数
4
解决办法
19万
查看次数

从SQL中的存储过程获取RETURN值

我有一个存储过程,它以RETURN值0或1结束.

我想在另一个存储过程的IF语句中使用此值.

如何获取前存储过程的返回值并将其保存在后者的变量中?

我找不到任何相关的东西.所有问题都是关于在C#中获取RETURN值.

我在想,也许是这样的:

SP_Two

DECLARE @returnValue INT
SET @returnValue = EXEC SP_One

IF @returnValue = 1
BEGIN
   --do something
END
ELSE
BEGIN
   --do something else
END
Run Code Online (Sandbox Code Playgroud)

sql sql-server

67
推荐指数
3
解决办法
10万
查看次数

快速向SQL Server中插入200万行

我必须从文本文件中插入大约200万行.

插入时我必须创建一些主表.

将如此大量的数据插入SQL Server的最佳和快速方法是什么?

c# database sql-server asp.net ado.net

67
推荐指数
4
解决办法
13万
查看次数

SQL Server:什么是批处理语句(即使用"GO")有用?

我知道在SQL Server中GO 被认为是批处理分隔符.

我的问题是:有一个批处理分隔符有什么意义?它给你带来了什么好处,为什么要使用它?

示例:我经常看到它在SQL代码中使用如下,我不明白为什么它被认为是最佳实践.据我所知,代码在没有所有GO语句的情况下都是一样的:

USE AdventureWorks2012;
GO
BEGIN TRANSACTION;
GO
IF @@TRANCOUNT = 0
BEGIN
    SELECT FirstName, MiddleName 
    FROM Person.Person WHERE LastName = 'Adams';
    ROLLBACK TRANSACTION;
    PRINT N'Rolling back the transaction two times would cause an error.';
END;
ROLLBACK TRANSACTION;
PRINT N'Rolled back the transaction.';
GO
Run Code Online (Sandbox Code Playgroud)

(来源:technet文档):

t-sql sql-server

67
推荐指数
4
解决办法
2万
查看次数

单个SQL Server语句是原子的还是一致的?

是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)

sql-server sql-server-2008-r2

67
推荐指数
1
解决办法
2万
查看次数

64位Microsoft SQL Server数据工具

我无法找到64位版本的Microsoft SQL Server数据工具.

有没有人知道我可以在哪里下载64位版本的Microsoft SQL Server数据工具 - 适用于Visual Studio 2013和SQL Server 2014的商业智能.

我只能找到以下32位版本http://www.microsoft.com/en-us/download/details.aspx?id=42313但我需要64位版本.

sql-server ssdt-bi visual-studio-2013

67
推荐指数
1
解决办法
8万
查看次数