使用Sql Server 2012.我有一个存储过程,其中一部分检查用户名是否在表中.如果是,则返回1,如果不是,则返回2.这是我的代码:
IF EXISTS (SELECT * FROM tblGLUserAccess WHERE GLUserName ='xxxxxxxx') 1 else 2
Run Code Online (Sandbox Code Playgroud)
但是,我一直收到以下错误:
'1'附近的语法不正确.
这是否可以通过IF EXIST实现?
问候,
迈克尔
sql sql-server stored-procedures if-statement sql-server-2012
我们如何找到数据库中锁定的表?请建议.
sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2 sql-server-2012
有没有一种简单的方法来确定sp_trace_createSQL Server 2000上已设置了哪些跟踪?SQL Server 2005,2008,2012或2014怎么样?
sql-server sql-server-2005 sql-server-2008 sql-server-2012 sql-server-2017
我想从序列中获取当前值 - 与序列属性窗口SQL Server Management Studio中显示的值相同

我的序列是用这个语句创建的:
CREATE SEQUENCE [OrderNumberSequence]
as int
START WITH 4000
INCREMENT BY 1
MINVALUE 0
NO MAXVALUE
NO CACHE;
GO
Run Code Online (Sandbox Code Playgroud)
我从MSDN尝试过这个SQL - 但结果是每次运行查询时我的数字都会增加5
DECLARE
@FirstSeqNum sql_variant
, @LastSeqNum sql_variant
, @CycleCount int
, @SeqIncr sql_variant
, @SeqMinVal sql_variant
, @SeqMaxVal sql_variant ;
EXEC sys.sp_sequence_get_range
@sequence_name = N'[OrderNumberSequence]'
, @range_size = 5
, @range_first_value = @FirstSeqNum OUTPUT
, @range_last_value = @LastSeqNum OUTPUT
, @range_cycle_count = @CycleCount OUTPUT
, @sequence_increment = @SeqIncr OUTPUT
, …Run Code Online (Sandbox Code Playgroud) 我将备份从SQL Server 2000还原到最新版本时出现以下错误消息.我不知道旧版本,现在我使用的是SQL Server 2012(11.0.3128.0).
错误消息是:
消息3169,级别16,状态1,服务器FF101,行1
数据库在运行版本8.00.0760的服务器上备份.该版本与此服务器不兼容,该服务器运行的是版本11.00.3128.在支持备份的服务器上还原数据库,或使用与此服务器兼容的备份.
我正在使用SQL Server 2008 R2并且有一个VARCHAR我想要转换为DECIMAL(28,10)使用的列CONVERT.但是其中许多行格式错误,因此无法将它们解析为数字.在这种情况下,我只想通过将结果设置为0或NULL来跳过这些.
我知道SQL Server 2012(TRY_CONVERT())中有一个新的语句会很方便.
这可能是在2008年还是我必须等到我们更新到下一个版本的SQL 2012?
编辑
不幸的ISNUMERIC()是,在这种情况下不可靠.我试过了
ISNUMERIC(myCol) = 1
Run Code Online (Sandbox Code Playgroud)
对于CONVERT无法转换为的行,返回true DECIMAL.
我最近不得不安装SQL Server并将数据库恢复到2台笔记本电脑,第一次花了我几天时间弄明白,第二次我还在苦苦挣扎.
我两个都在这里得到这个错误:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
我仍然在第二次得到它.
我做了很多研究,并遵循StackOverflow和其他网站上列出的所有步骤,例如确保SQL Server运行TCP和命名管道,确保SQL Server允许远程连接,以及我能找到的所有其他故障排除步骤.
最后我发现我只是在第一台笔记本电脑上输入错误的连接字符串.(localdb)\MSSQLSERVER2012正如它在许多网站上所做的那样,我试图使用(或类似的东西).它在我使用时开始工作.\MSSQLSERVER2012.我以为他们都指向同一个地方,但显然不是.
我真的想再次避免这个问题,并弄清楚如何设置我的第二台笔记本电脑.我怎么知道我是否应该使用.\SQLSERVER2012,(local)\SQLSERVER2012,(localdb)\SQLSERVER2012等?有没有一种简单的方法可以使用命令行工具找到它SqlLocalDb?这首先是如何设置的?
database connection-string sql-server-2008 sql-server-2008-r2 sql-server-2012
我正在尝试将从SQL Server 2012中获取的备份还原到SQL Server 2008 R2,并且它会出错
指定演员表无效.(SqlManagerUI)
如果您有任何解决方案,请发表评论
谢谢.
事务是否会在同一SQL服务器中跨多个数据库工作?如果是这样,这是一个分布式事务吗?还是会基本BEGIN TRANSACTION工作?
当我转到SQL Server Management Studio - >管理 - >维护计划 - >右键单击我要执行的维护计划但该选项显示为灰色.

sql-server-2012 ×10
sql-server ×8
sql ×3
database ×2
t-sql ×2
if-statement ×1
sequence ×1
transactions ×1