我已经获得了一个只有执行存储过程权限的SQL Server数据库的用户帐户.我将JTDS SQL Server JDBC jar文件添加到SQL Developer并将其添加为第三方JDBC驱动程序.我可以成功登录到SQL Server数据库.我得到了运行该过程的语法:
EXEC proc_name 'paramValue1' 'paramValue2'
Run Code Online (Sandbox Code Playgroud)
当我将其作为语句或脚本运行时,我收到此错误:
Error starting at line 1 in command:
EXEC proc_name 'paramValue1' 'paramValue2'
Error report:
Incorrect syntax near the keyword 'BEGIN'.
Run Code Online (Sandbox Code Playgroud)
我尝试将语句包装BEGIN/END,但得到相同的错误.是否可以从SQL Developer调用该过程?如果是这样,我需要使用什么语法?
我似乎无法从站点连接到我的数据库.我收到此错误:
命名管道提供程序,错误:40 - 无法打开与SQL Server的连接
我尝试使用本地IP地址连接以及公共IP地址.我试过了:
我还能在这做什么?
我如何查询我的SQL服务器只获取数据库的大小?
我用过这个:
use "MY_DB"
exec sp_spaceused
Run Code Online (Sandbox Code Playgroud)
我懂了 :
database_name database_size unallocated space
My_DB 17899.13 MB 5309.39 MB
Run Code Online (Sandbox Code Playgroud)
它返回了我不需要的几个列,也许有一个从这个存储过程中选择database_size列的技巧?
我也试过这段代码:
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
(size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'
Run Code Online (Sandbox Code Playgroud)
它给了我这个结果:
DatabaseName Logical_Name Physical_Name SizeMB
MY_DB MY_DB D:\MSSQL\Data\MY_DB.mdf 10613
MY_DB MY_DB_log D:\MSSQL\Data\MY_DB.ldf 7286
Run Code Online (Sandbox Code Playgroud)
所以我写了这个:
SELECT SUM(SizeMB)
FROM (
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
(size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'
) AS TEMP …Run Code Online (Sandbox Code Playgroud) 我认为这些是同义的,但我在Microsoft SQL中写了以下内容:
Select Unique col from
(select col from table1 union select col from table2) alias
Run Code Online (Sandbox Code Playgroud)
它失败了.把它改成
Select Distinct col from
(select col from table1 union select col from table2) alias
Run Code Online (Sandbox Code Playgroud)
固定它.谁能解释一下?
我有一个列格式为a,b,c,d的列.有没有办法在T-SQL中计算该值中逗号的数量?
在SQL Server中,如果 nullParam=NULL在where子句中,它总是计算为false.这是违反直觉的,并且给我带来了许多错误.我确实理解IS NULL和IS NOT NULL关键字是正确的方法.但是为什么SQL服务器会以这种方式运行?
我有这个简单的T-SQL查询,它从表中发出一堆列,并且还连接来自其他相关表的信息.
我的数据模型很简单.我有一个预定的活动,与参与者.我需要知道有多少参与者参加每个活动.
我的解决方案是添加一个CTE,它对预定的事件进行分组并计算参与者的数量.
这将允许我按预定活动加入该信息.保持查询简单.
我喜欢让我的查询简单,但是,如果我将来需要在简单查询期间访问其他临时结果,我该怎么办?
我真的很喜欢它,如果我可以拥有多个CTE,但我不能,对吧?我有什么选择?
我已经在应用程序数据层排除了视图和操作.我更喜欢孤立我的SQL查询.
我想要获得两天之间的总天数:
1/1/2011
3/1/2011
RETURN
62
Run Code Online (Sandbox Code Playgroud)
是否可以在SQL Server中执行?
我需要运行一个select语句,返回列的值不相同的所有行(例如EmailAddress).
例如,如果表格如下所示:
CustomerName EmailAddress
Aaron aaron@gmail.com
Christy aaron@gmail.com
Jason jason@gmail.com
Eric eric@gmail.com
John aaron@gmail.com
Run Code Online (Sandbox Code Playgroud)
我需要查询返回:
Aaron aaron@gmail.com
Christy aaron@gmail.com
John aaron@gmail.com
Run Code Online (Sandbox Code Playgroud)
我阅读了很多帖子并尝试了不同的查询无济于事.我认为应该工作的查询如下.有人可以提出替代方案或告诉我查询可能有什么问题吗?
select EmailAddress, CustomerName from Customers
group by EmailAddress, CustomerName
having COUNT(distinct(EmailAddress)) > 1
Run Code Online (Sandbox Code Playgroud) 我有一个SQL语句,有一个CASE从SELECT,我只是无法正确.你们能告诉我一个例子CASE,说明案件的条件是什么,结果来自案件.例如:
Select xxx, yyy
case : desc case when bbb then 'blackberry';
when sss then 'samsung';
end
from (select ???? .....
Run Code Online (Sandbox Code Playgroud)
结果显示
name age handphone
xxx1 yyy1 blackberry
xxx2 yyy2 blackberry
Run Code Online (Sandbox Code Playgroud)