Questions tagged «tsql»

T-SQL(事务结构查询语言)是Sybase ASE和Microsoft SQL Server支持的SQL功能的扩展。请勿将此标签用于MySQL,PostgreSql,Oracle(Pl / SQL)相关查询。请注意,使用LINQ编写的SQL代码也不属于该标签的一部分。该标记是专门为使用Microsoft SQL Server进行高级SQL编程而创建的。

8
确定SQL Server数据库大小
SQL Server 2005/2008 Express版每个数据库的限制为4 GB。据我所知,数据库引擎仅考虑数据,因此不包括日志文件,未使用的空间和索引大小。 就SQL Server限制而言,获取MDF文件的长度不应提供正确的数据库大小。我的问题是如何获取数据库大小?
77 sql-server  tsql 


21
在SQL Server中获取上个月的记录
我想根据我的数据库表[member]字段“ date_created”获取上个月的记录。 什么是SQL来做到这一点? 为了澄清起见,上个月-2009年1月8日至2009年8月31日 如果今天是2010年3月1日,我需要获取2009年1月12日至2009年12月31日的记录。
77 sql  sql-server  tsql 

6
T-SQL中的PRINT语句
为什么T-SQL中的PRINT语句有时仅起作用?使用它有什么限制?似乎有时候,如果生成了一个结果集,它就变成了一个空函数,我假设是要防止破坏结果集,但它的输出不会在其他结果集中消失,例如行数吗?
77 sql-server  tsql 

3
TABLOCK与TABLOCKX
TABLOCK和TABLOCKX http://msdn.microsoft.com/zh-cn/library/ms187373.aspx和有什么区别,它指出TABLOCK共享锁TABLOCKX是排他锁,而独占锁是。是第一个也许仅仅是索引锁吗?共享锁的概念是什么?
77 sql-server  tsql 


8
为什么不使用varchar(max)?
关于数据库设计,我有点老了,所以我完全赞成在列中使用正确的数据大小。但是,在查看一个朋友的数据库时,我注意到他使用varchar(max)了很多东西。现在,我立即想到的是将其退还给他,并告诉他进行更改。但是后来我考虑了一下,不能为他不使用它提供充分的理由(如果您想知道的话,他曾使用过一个案例类型工具来生成数据库)。 我一直在研究varchar(max)用法的主题,但我不能提出任何不使用它的充分理由。 他不使用列作为索引,位于数据库上的应用程序对输入有限制,因此不允许在字段中输入大量条目。 任何帮助将不胜感激,以帮助我让他看到光:)。

8
如何在SQL Server中使用RANK()
我RANK()在SQL Server中使用时遇到问题。 这是我的代码: SELECT contendernum, totals, RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank FROM ( SELECT ContenderNum, SUM(Criteria1+Criteria2+Criteria3+Criteria4) AS totals FROM Cat1GroupImpersonation GROUP BY ContenderNum ) AS a 该查询的结果是: contendernum totals xRank 1 196 1 2 181 1 3 192 1 4 181 1 5 179 …
76 sql-server  tsql 

4
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 (来源:technet文档):
76 sql-server  tsql 

6
T-SQL遍历查询结果
我运行查询select @id=table.id from table,我需要遍历结果,以便可以对每一行执行存储过程exec stored_proc @varName=@id,@otherVarName='test' 如何在T-SQL脚本中执行此操作?
76 tsql 

4
在SQL LIKE子句中使用SqlParameter不起作用
我有以下代码: const string Sql = @"select distinct [name] from tblCustomers left outer join tblCustomerInfo on tblCustomers.Id = tblCustomerInfo.CustomerId where (tblCustomer.Name LIKE '%@SEARCH%' OR tblCustomerInfo.Info LIKE '%@SEARCH%');"; using (var command = new SqlCommand(Sql, Connection)) { command.Parameters.AddWithValue("@SEARCH", searchString); ... } 这行不通,我也尝试这样做: const string Sql = @"select distinct [name] from tblCustomers left outer …

2
在SQL Server游标中获取多个值
我有一个游标,其中包含该行中的几列,它带回了我想立即处理的行。我注意到我看到的有关如何使用游标的大多数示例都显示了它们一次将游标中的特定列分配给一个标量值,然后移至下一行, 例如 OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN --Do Stuff with @name scalar value, then get next row from cursor FETCH NEXT FROM db_cursor INTO @name END 我想知道的是是否有可能执行以下操作: OPEN db_cursor FETCH NEXT FROM db_cursor; WHILE @@FETCH_STATUS = 0 BEGIN SET @myName = db_cursor.name; …
75 sql  sql-server  tsql  cursor 


3
使用INSERT INTO插入多个值(SQL Server 2005)
在SQL Server 2005中,我试图弄清为什么我不能在表中插入多个字段。下面的查询插入一条记录,可以正常工作: INSERT INTO [MyDB].[dbo].[MyTable] ([FieldID] ,[Description]) VALUES (1000,N'test') 但是,以下指定多个值的查询失败: INSERT INTO [MyDB].[dbo].[MyTable] ([FieldID] ,[Description]) VALUES (1000,N'test'),(1001,N'test2') 我收到此消息: Msg 102, Level 15, State 1, Line 5 Incorrect syntax near ','. 当我在SQL Sever Management Studio中查找INSERT的帮助时,其中一个示例显示了使用的“值”语法(括号内是值组,并用逗号分隔)。我在SQL Server Management Studio中找到的帮助文档看起来像是针对SQL Server 2008的,所以这也许就是插入无法正常工作的原因。无论哪种方式,我都无法弄清楚为什么它不起作用。


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.