Questions tagged «sql-server»

Microsoft SQL Server是一个关系数据库管理系统(RDBMS)。将此标签用于所有SQL Server版本,包括Compact,Express,Azure,Fast-track,APS(以前称为PDW)和Azure SQL DW。请勿将此标签用于其他类型的DBMS(MySQL,PostgreSQL,Oracle等)。除非该标签与数据库直接相关,否则请勿将其用于软件和移动开发问题。

7
SQL Server在存储过程中默默地截断varchar
根据这个论坛的讨论,SQL Server(我使用的是2005,但我收集到的信息也适用于2000和2008)varchar,即使您直接使用INSERT实际上会导致错误。例如。如果我创建此表: CREATE TABLE testTable( [testStringField] [nvarchar](5) NOT NULL ) 然后当我执行以下命令时: INSERT INTO testTable(testStringField) VALUES(N'string which is too long') 我收到一个错误: String or binary data would be truncated. The statement has been terminated. 大。数据完整性得以保留,并且调用者知道这一点。现在让我们定义一个存储过程来插入它: CREATE PROCEDURE spTestTableInsert @testStringField [nvarchar](5) AS INSERT INTO testTable(testStringField) VALUES(@testStringField) GO 并执行它: EXEC spTestTableInsert @testStringField = N'string …

4
SQLSERVER中的ListAGG
我正在尝试在SQLServer中聚合“ STRING”字段。我想找到与Oracle中相同的函数LISTAGG。 您知道如何执行相同的功能或其他方法吗? 例如, Field A | Field B 1 | A 1 | B 2 | A 我希望这个查询的结果是 1 | AB 2 | A

8
如何在T-SQL中翻转位字段?
我正在尝试使用更新查询来翻转SQL Server中的位字段,也就是说,我想将所有0都变成1,反之亦然。什么是最优雅的解决方案? 在T-SQL中似乎没有按位NOT运算符(除非我遗漏了一些明显的东西),而且我无法找到执行更新的任何其他方式。
72 sql  sql-server  tsql 


4
看不到我在SQL Server Management Studio 2008中创建的触发器
我在“专辑”表上创建了一个简单的触发器。但是该触发器在triggers文件夹的可编程性中在对象资源管理器中不可见。我刷新了该文件夹,然后重新启动了SSMS,但是仍然没有运气。但是我可以在triggers文件夹中的该表下看到该触发器。这是功能还是错误? 我正在使用SQL Server 2008。


1
SQL Server(localdb)\ v11.0说明
我正在将Code First转到“现有数据库”教程中,并注意到它建议(localdb)\v11.0出于学习目的进行连接。我尝试使用SQL Management Studio连接到它,并且它正常工作。但是,当我还原数据库备份时,它[DatabaseName].mdf在我的用户目录中创建了一个文件。 我很惊讶,并提出以下问题: 什么是(localdb)\v11.0?它使用我的SQL Express或SQL Compact吗? 它仅支持.mdf文件中存储的数据库吗? 除了用户的文件夹外,如何指定还原路径? 它有什么一般用途(仅用于学习目的)? 在哪里可以找到有关这种数据库的更多信息?

8
复制数据库的最佳方法(SQL Server 2008)
愚蠢的问题-在要使用生产服务器中的实例刷新开发服务器的环境中,复制实例的最佳方法是什么? 我已经完成了备份-还原,但是我听说过detach-copy-attach,甚至有人告诉我他只需要在文件系统之间复制数据文件即可。 这三种(或两种,最后一种听起来有点可疑)是否被接受? 我的理解是第二种方法更快,但是由于分离方面,需要在源上停机。 另外,在这种情况下(想要在开发服务器上复制生产的精确副本),如何转移登录名等做法?我应该只备份和还原用户数据库+ master + msdb吗?

15
如何找到SQL Server实例的数据目录?
我们有一些大型数据库(20GB +),其中大多数包含静态查找数据。因为我们的应用程序对这些数据库中的表执行联接,所以它们必须是每个开发人员本地SQL Server的一部分(即它们不能托管在中央共享数据库服务器上)。 我们计划复制一组规范的实际SQL Server数据库文件(* .mdf和* .ldf),并将它们附加到每个开发人员的本地数据库中。 找出本地SQL Server实例的数据目录的最佳方法是什么,以便我们可以将文件复制到正确的位置?这将通过自动化过程完成,因此我必须能够从构建脚本中找到并使用它。

6
仅在尚未插入的行插入
我一直使用类似于以下内容的方法来实现它: INSERT INTO TheTable SELECT @primaryKey, @value1, @value2 WHERE NOT EXISTS (SELECT NULL FROM TheTable WHERE PrimaryKey = @primaryKey) ...但是一旦加载,就会发生主键冲突。这是唯一插入到该表中的唯一语句。那么这是否意味着上述陈述不是原子的? 问题在于,几乎不可能随意重建。 也许我可以将其更改为以下内容: INSERT INTO TheTable WITH (HOLDLOCK, UPDLOCK, ROWLOCK) SELECT @primaryKey, @value1, @value2 WHERE NOT EXISTS (SELECT NULL FROM TheTable WITH (HOLDLOCK, UPDLOCK, ROWLOCK) WHERE PrimaryKey = @primaryKey) 虽然,也许我使用了错误的锁或使用了过多的锁之类的东西。 我在stackoverflow.com上看到了其他问题,那里的答案都提示“ …

1
上次执行的特定数据库查询
我知道如何使用SSMS中的以下SQL获取最后执行的查询- SELECT deqs.last_execution_time AS [Time], dest.text AS [Query] FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest ORDER BY deqs.last_execution_time DESC 但是我想为特定的数据库找到它们。如果不需要,我不想使用SQL Profiler。另外,我认为SQL Profiler不允许我查看在未启用概要分析的情况下已经运行的查询。我需要从SSMS执行此操作。


9
无法获取有关Windows NT组/用户的信息
我有使用本地安装的SQL Server Express运行SharePoint 2010的Windows 2012 Server。不幸的是,我的日志当前充斥着消息“在目标队列中使消息入队时发生异常。错误:15404,状态:19。无法获取有关Windows NT组/用户'DOMAIN \ user'的信息,错误代码0x5。” 每秒可能有20条这样的消息! (...“ DOMAIN \ user”恰好是我的个人帐户。) 是否有缺少权利的正在运行的作业?“来自/server/277551/mssqlserver-exception-occurred-while-enqueueing-a-message-in-the-target-queue-e的队列”“尝试将作业的所有者更改为sa “如果我正确,SQL Server的快速版本无法运行作业?或者有人/某人想要访问我们的广告?为什么该帐户想要获取有关我的帐户的信息20”每秒几次? 我确实有很多关于此任务的博客和提示,但我只是不了解解决方案。有人说:“要修复此问题,请以SA帐户之一身份登录,并为需要它的帐户授予SA访问权限。” 但是哪个帐户需要访问权限?

6
创建具有与永久表相同的列和类型的临时表的最佳方法
我需要创建一个具有与永久表相同的列和类型的临时表。最好的方法是什么?(永久表有超过100列) 即 通常我创建这样的表。 DECLARE #TT TABLE( member_id INT, reason varchar(1), record_status varchar(1) , record_type varchar(1) ) 但是,有什么方法可以不提及列名和类型,而要提及具有所需列的另一个表的名称?
72 sql  sql-server 

10
我可以添加没有默认值的非空列吗
是否可以添加我指定为NOT NULL的列,我不想指定DEFAULT值,但是MS-SQL 2005说: ALTER TABLE仅允许添加可以包含空值或指定DEFAULT定义的列,或者要添加的列是Identity或timestamp列,或者如果不满足任何先前条件,则该表必须为空才能允许添加本专栏的内容。无法将列“ test”添加到非空表“ shiplist”中,因为它不满足这些条件。 如果是,请让我知道语法,如果否,请说明原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.