Questions tagged «sql-server»

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


17
在T-SQL中用单个空格替换重复的空格
我需要确保一个给定的字段在字符之间不要有多个空格(我不关心所有的空白,而只是关心空间)。 所以 'single spaces only' 需要变成 'single spaces only' 下面的行不通 select replace('single spaces only',' ',' ') 因为这会导致 'single spaces only' 我真的更喜欢使用本地T-SQL,而不是基于CLR的解决方案。 有什么想法吗?
100 sql-server  tsql 

22
有时可以连接到SQL Server
ADO.Net应用程序有时只能连接到本地网络上的另一台服务器。给定的连接尝试成功或失败似乎是随机的。该连接使用以下形式的连接字符串: Server = THESERVER \ TheInstance; Database = TheDatabase; User Id = TheUser; 密码=密码 返回的错误是: 连接超时已过期。尝试使用登录前握手确认时,超时时间已过。 这可能是因为登录前的握手失败或服务器无法及时回复。 尝试连接到该服务器所花费的时间为-[登录前]初始化= 42030;握手= 0; .NET应用程序是一个小型测试应用程序,它执行以下代码: using (SqlConnection conn = new SqlConnection(cs)) using (SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM TheTable", conn)) { conn.Open(); int rowCount = (int)cmd.ExecuteScalar(); } TheTable很小,只有78行。 但是,在.NET应用程序收到此错误的同一台计算机上,我能够使用SSMS和连接字符串中指定的用户ID /密码连接到THESERVER。 为什么连接可能会因ADO.Net应用程序而失败,但是使用来自SSMS的相同凭据成功完成?

5
进行递归自联接的最简单方法?
在SQL Server中进行递归自联接的最简单方法是什么?我有一张这样的桌子: PersonID | Initials | ParentID 1 CJ NULL 2 EB 1 3 MB 1 4 SW 2 5 YT NULL 6 IS 5 而且我希望能够只获取与特定人员开始的层次结构相关的记录。因此,如果我通过PersonID = 1请求CJ的层次结构,则会得到: PersonID | Initials | ParentID 1 CJ NULL 2 EB 1 3 MB 1 4 SW 2 对于EB,我会得到: PersonID | Initials | …

19
我应该在SQL Server中索引位字段吗?
我记得曾经读过一点,对基数较低(不同值的数量很少)的字段进行索引并不是真正值得做的事情。我承认我对索引的工作方式了解不足,无法理解为什么会这样。 那么,如果我有一个包含1亿行的表,而我选择的是位字段为1的记录怎么办?假设在任何时间点,只有少数记录的位字段为1(而不是0)。是否值得索引该位字段?为什么? 当然,我可以测试它并检查执行计划,并且我会这样做,但是我也对它背后的理论感到好奇。基数什么时候重要,什么时候不重要?

1
SQL Server-何时使用群集索引与非群集索引?
我知道聚簇索引和非聚簇索引之间的主要区别,并且了解它们的实际工作方式。我了解群集索引和非群集索引如何提高读取性能。但是我不确定的一件事是,为什么我会选择一个而不是另一个。 例如:如果一个表没有聚集索引,应该创建一个非聚集索引,这样做的好处是什么

6
使用StringWriter进行XML序列化
我目前正在寻找一种简单的方法来序列化对象(在C#3中)。 我在Google上搜索了一些示例,并提出了类似的内容: MemoryStream memoryStream = new MemoryStream ( ); XmlSerializer xs = new XmlSerializer ( typeof ( MyObject) ); XmlTextWriter xmlTextWriter = new XmlTextWriter ( memoryStream, Encoding.UTF8 ); xs.Serialize ( xmlTextWriter, myObject); string result = Encoding.UTF8.GetString(memoryStream .ToArray()); 阅读了这个问题后,我问自己,为什么不使用StringWriter?似乎容易得多。 XmlSerializer ser = new XmlSerializer(typeof(MyObject)); StringWriter writer = new StringWriter(); ser.Serialize(writer, myObject); …

3
未解析对对象[INFORMATION_SCHEMA]的引用。[TABLES]
我创建了一个访问[INFORMATION_SCHEMA].[TABLES]视图的UDF : CREATE FUNCTION [dbo].[CountTables] ( @name sysname ) RETURNS INT AS BEGIN RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name ); END 在Visual Studio中,视图的架构和名称均标有警告: SQL71502:功能:[dbo]。[CountTables]有对对象[INFORMATION_SCHEMA]。[TABLES]的引用。 我仍然可以发布数据库项目而没有任何问题,并且UDF确实可以正常运行。IntelliSense为我填充了视图的名称,因此它似乎没有问题。 我还尝试过更改实现以使用sys.objects该视图,而不是使用此视图,但是也对该视图也给予了相同的警告。 如何解决此警告?



12
错误:“不能嵌套INSERT EXEC语句。” 和“不能在INSERT-EXEC语句中使用ROLLBACK语句。” 如何解决呢?
我有三个存储过程Sp1,Sp2和Sp3。 第一个(Sp1)将执行第二个(Sp2)并将返回的数据保存到@tempTB1,第二个将执行第三个(Sp3)并将数据保存到@tempTB2。 如果我执行,Sp2它将正常工作,它将从中返回我的所有数据Sp3,但是问题出在Sp1,当我执行它时,它将显示此错误: INSERT EXEC语句不能嵌套 我试图更改位置,execute Sp2但显示另一个错误: 不能在INSERT-EXEC语句中使用ROLLBACK语句。

9
使用T-SQL生成MD5哈希字符串
有没有一种方法可以在不使用fn_varbintohexstr的情况下生成varchar(32)类型的MD5哈希字符串 SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'email@dot.com')), 3, 32) 因此可以在带有SCHEMABINDING的视图内使用

7
如何跨多个列查找重复项?
所以我想在下面做这样的SQL代码: select s.id, s.name,s.city from stuff s group by s.name having count(where city and name are identical) > 1 要产生以下内容((但请忽略仅名称或城市匹配的地方,必须在两列中同时出现): id name city 904834 jim London 904835 jim London 90145 Fred Paris 90132 Fred Paris 90133 Fred Paris

16
从SQL语句中的字段中删除前导零
我正在处理从SQLServer数据库读取以生成提取文件的SQL查询。从特定字段(最简单的VARCHAR(10)字段)中删除前导零的要求之一。因此,例如,如果该字段包含“ 00001A”,则SELECT语句需要将数据返回为“ 1A”。 SQL中是否可以通过这种方式轻松删除前导零?我知道有一个RTRIM功能,但这似乎只能删除空格。
98 sql  sql-server  tsql 

12
哪些列通常可以构成良好的索引?
作为“ 什么是索引,以及如何使用它们来优化数据库中的查询? ” 的后续尝试,在尝试了解索引的地方,哪些列是良好的索引候选者?专门针对MS SQL数据库? 经过一番谷歌搜索后,我读到的所有内容都表明,通常增加且唯一的列构成了很好的索引(例如MySQL的auto_increment之类的东西),我理解这一点,但是我使用的是MS SQL,并且我将GUID用于主键,所以看起来索引不会使GUID列受益...

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.