标签: t-sql

分配变量时SET与SELECT?

在T-SQL中分配变量时,SETSELECT语句之间有什么区别?

sql t-sql sql-server sql-server-2005 sql-server-2008

275
推荐指数
4
解决办法
37万
查看次数

SQL查询以选择两个日期之间的日期

我有一个start_dateend_date.我想获得这两个日期之间的日期列表.任何人都可以帮我指出我的查询中的错误.

select Date,TotalAllowance 
from Calculation 
where EmployeeId=1
  and Date between 2011/02/25 and 2011/02/27
Run Code Online (Sandbox Code Playgroud)

Date是一个datetime变量.

sql t-sql sql-server datetime sql-server-2005

270
推荐指数
9
解决办法
165万
查看次数

在SQL中选择CHAR over VARCHAR的用例有哪些?

我意识到如果我的所有值都是固定宽度的话,建议使用CHAR.但是,那又怎样?为什么不为所有文本字段选择VARCHAR只是为了安全.

sql t-sql sql-server

269
推荐指数
10
解决办法
16万
查看次数

如何在SQL Server中使用单个ALTER TABLE语句删除多个列?

我想编写一个SQL命令来从一个ALTER TABLE语句中删除单个表中的多个列.

来自MSDN的ALTER TABLE文档 ......

DROP { [CONSTRAINT] constraint_name | COLUMN column_name }
Run Code Online (Sandbox Code Playgroud)

指定从表中删除constraint_name或column_name.如果兼容级别为65或更早,则不允许使用DROP COLUMN.可以列出多个列和约束.

它说mutliple列可以在语句中列出,但语法不显示可选的逗号或任何甚至暗示语法的东西.

我应该如何编写SQL以在一个语句中删除多个列(如果可能)?

sql t-sql sql-server alter

269
推荐指数
5
解决办法
36万
查看次数

如何在创建存储过程之前检查存储过程是否存在

我有一个SQL脚本,每次客户端执行"数据库管理"功能时都必须运行该脚本.该脚本包括在客户端数据库上创建存储过程.其中一些客户端在运行脚本时可能已经有了存储过程,有些可能没有.我需要将缺少的存储过程添加到客户端数据库中,但是我尝试弯曲T-SQL语法并不重要,我得到了

CREATE/ALTER PROCEDURE'必须是查询批处理中的第一个语句

在创作作品之前我已经读到了它,但我不喜欢这样做.

IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'MyProc')
DROP PROCEDURE MyProc
GO

CREATE PROCEDURE MyProc
...
Run Code Online (Sandbox Code Playgroud)

如何添加检查存储过程是否存在并创建它(如果它不存在)但如果存在则更改它?

sql t-sql sql-server stored-procedures

266
推荐指数
10
解决办法
50万
查看次数

如何将表移动到T-SQL中的模式中

我想使用T-SQL将表移动到特定的Schema中?我正在使用SQL Server 2008.

t-sql sql-server schema sql-server-2008 sql-server-2016

262
推荐指数
2
解决办法
15万
查看次数

为什么要在数据库中创建View?

何时以及为什么有人决定他们需要在他们的数据库中创建一个View?为什么不运行正常的存储过程或选择?

sql t-sql database sql-server

257
推荐指数
9
解决办法
19万
查看次数

使用T-SQL从日期和年份创建日期

我试图将日期与单个部分(如12,1,2007)转换为SQL Server 2005中的日期时间.我尝试了以下内容:

CAST(DATEPART(year, DATE)+'-'+ DATEPART(month, DATE) +'-'+ DATEPART(day, DATE) AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

但这会导致错误的日期.将三个日期值转换为正确的日期时间格式的正确方法是什么.

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

256
推荐指数
9
解决办法
38万
查看次数

不等于<>!=运算符为NULL

有人可以在SQL中解释以下行为吗?

SELECT * FROM MyTable WHERE MyColumn != NULL (0 Results)
SELECT * FROM MyTable WHERE MyColumn <> NULL (0 Results)
SELECT * FROM MyTable WHERE MyColumn IS NOT NULL (568 Results)
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server null

255
推荐指数
9
解决办法
36万
查看次数

T-SQL:删除所有重复的行但保留一行

可能重复:
SQL - 如何删除重复的行?

我有一个行数非常多的表.不允许重复,但由于行如何创建的问题我知道这个表中有一些重复.我需要从关键列的角度消除额外的行.其他一些列的数据可能略有不同,但我并不关心.我仍然需要保留其中一行.SELECT DISTINCT将无法工作,因为它在所有列上运行,我需要根据键列抑制重复.

如何删除额外的行但仍保持有效?

sql t-sql sql-server

254
推荐指数
3
解决办法
29万
查看次数