我有一个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 Server 2008中截断日期时间值(删除小时分钟和秒)的最佳方法是什么?
例如:
declare @SomeDate datetime = '2009-05-28 16:30:22'
select trunc_date(@SomeDate)
-----------------------
2009-05-28 00:00:00.000
Run Code Online (Sandbox Code Playgroud) 我想使用T-SQL将表移动到特定的Schema中?我正在使用SQL Server 2008.
何时以及为什么有人决定他们需要在他们的数据库中创建一个View?为什么不运行正常的存储过程或选择?
我试图将日期与单个部分(如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中解释以下行为吗?
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) 我有一个MS SQL Server 2008 Express系统,它包含一个我想要"复制和重命名"的数据库(用于测试目的),但我不知道实现这一目的的简单方法.
我注意到在SQL Server的R2版本中有一个复制数据库向导,但遗憾的是我无法升级.
有问题的数据库是围绕着一个演出.我试图恢复我要复制到新数据库的数据库的备份,但没有运气.
可能重复:
SQL - 如何删除重复的行?
我有一个行数非常多的表.不允许重复,但由于行如何创建的问题我知道这个表中有一些重复.我需要从关键列的角度消除额外的行.其他一些列的数据可能略有不同,但我并不关心.我仍然需要保留其中一行.SELECT DISTINCT将无法工作,因为它在所有列上运行,我需要根据键列抑制重复.
如何删除额外的行但仍保持有效?
如何salary将employee表中列的列大小更改numeric(18,0)为numeric(22,5)
如何从YYYY-MM-DD格式的SQL Server中检索日期?我需要这个与SQL Server 2000及更高版本一起工作.有没有一种简单的方法在SQL Server中执行此操作,还是在检索结果集后以编程方式更容易地进行转换?
我已阅读Microsoft Technet上的CAST和CONVERT,但未列出我想要的格式,并且不能更改日期格式.
sql-server ×10
t-sql ×8
sql ×6
database ×2
alter-table ×1
datetime ×1
null ×1
schema ×1
truncate ×1