在SSRS中编辑和删除计划报告时,我当前收到以下错误:"只允许sysadmin角色的成员更新或删除其他登录所拥有的作业."
我已经尝试将作业的所有者更改为SSRS使用的服务帐户,我已将用户添加为sysadmin,并且我已检查Reporting Services本身的受限帐户的用户和密码.没有什么能有所作为.
报告服务日志只显示:
w3wp!library!a!06/03/2009-01:23:42:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details., ;
Info: Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details. ---> System.Data.SqlClient.SqlException: Only members of sysadmin role are allowed to update or delete jobs owned by a different login.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) …Run Code Online (Sandbox Code Playgroud) 对于某些上下文,记录类SaleAmount属性是
public decimal? SaleAmount
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我会这样做
record.SaleAmount.Value =
sql.Reader.IsDBNull(IDX_SALEAMOUNT) ? null :
sql.Reader.GetDecimal(IDX_SALEAMOUNT);
Run Code Online (Sandbox Code Playgroud)
唉编译器,这不是朋友,因为......
无法确定条件表达式的类型,因为''和'decimal'之间没有隐式转换
那么你如何优雅地表达这一点,并且不要像下面那样玩明显的卡片......
if (!sql.Reader.IsDBNull(IDX_SALEAMOUNT))
record.SaleAmount = sql.Reader.GetDecimal(IDX_SALEAMOUNT);
Run Code Online (Sandbox Code Playgroud)
或者是最佳解决方案?
我有一个包含数百万行的表,我需要做大量的查询,如下所示:
select max(date_field)
where varchar_field1 = 'something'
group by varchar_field2;
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我在MSSQL中有以下查询
SELECT TOP 50 CustomerID FROM Ratings
WHERE CustomerID != 915
AND MovieID IN (SELECT DISTINCT MovieID FROM Ratings WHERE CustomerID = 915)
GROUP BY CustomerID
ORDER BY count(*) DESC
Run Code Online (Sandbox Code Playgroud)
它超级快.当我尝试在这样的子查询中使用它时.
SELECT * FROM Ratings
WHERE MovieID = 1 AND
CustomerID IN (SELECT TOP 50 CustomerID FROM Ratings
WHERE CustomerID != 915
AND MovieID IN (SELECT DISTINCT MovieID FROM Ratings WHERE CustomerID = 915)
GROUP BY CustomerID
ORDER BY count(*) DESC)
Run Code Online (Sandbox Code Playgroud)
关于为什么这么慢以及如何加快速度的想法?我的主键是(MovieID-CustomerID),我在CustomerID上添加了一个索引
我们使用的是一个以C/Unix格式存储日期的旧应用程序.C时间基本上是自1970年1月1日以来的秒数.日期在SQL Server数据库中存储为整数.我正在为使用这些日期的报告撰写视图.
到目前为止,我正在从UNIX时间转换为本机日期时间:
DateAdd(s,3600+unix_time,'1/1/1970')
Run Code Online (Sandbox Code Playgroud)
3600将从UTC转换为我们当地的GMT + 1时区.这在冬天是准确的,但在夏天,由于夏令时,它是一小时.
在SQL Server中是否有内置的从UTC转换为本地时间的方法?
在我的程序中,我们将用户的IP地址存储在记录中.当我们向用户显示记录列表时,我们不想泄露其他用户的IP,因此我们将SHA1哈希.然后,当用户点击记录时,它会转到这样的URL:
http://www.example.com/allrecordsbyipaddress.php?ipaddress=SHA1HASHOFTHEIPADDRESS
Run Code Online (Sandbox Code Playgroud)
现在,我需要按SHA1哈希中指定的IP地址列出所有记录.我试过这个:
SELECT * FROM records
WHERE SHA1(IPADDRESS)="da39a3ee5e6b4b0d3255bfef95601890afd80709"
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我该怎么做?
谢谢,艾萨克沃勒
我想在MS SQL中实现一个在Oracles PL/SQL中看起来像这样的构造:
declare
asdf number;
begin
for r in (select * from xyz) loop
insert into abc (column1, column2, column3)
values (r.asdf, r.vcxvc, r.dffgdfg) returning id into asdf;
update xyz set column10 = asdf where ID = r.ID;
end loop;
end;
Run Code Online (Sandbox Code Playgroud)
任何想法如何实现这将是有帮助的.
提前致谢
我发现我的 SQL Server 数据库有许多休眠进程,看起来这些休眠 SPID 之一正在阻塞另一个进程,并且该进程也被挂起...
有人可以解释一下这一点吗...
1.) 睡眠进程如何阻塞另一个进程?2.) 我看到很多睡眠进程...这正常吗?
谢谢
假设我的表结构是这样的
ID OEReference
--- ------------
1 00000634B9
2 00000634B6
3 0005000053
4 0002855071
5 0000940148
6 0001414825
7 00000634B9
Run Code Online (Sandbox Code Playgroud)
我希望他们以我的方式提供OEReference,订单应保持在输出中.我的sql就像
Select * from mytable where OEReference in ('00000634B9','0001414825','00000634B6')
Run Code Online (Sandbox Code Playgroud)
上述语句未按IN子句的顺序返回结果集.我知道ORDER BY CLAUSE是不可能的
我怎样才能在sql server中使用简单的sql语句.谢谢
我有一个机密网站...我正在尝试制作一个SQL查询,用于计算用户在过去7天内发布的广告数量,但我有一个问题...
我试图在用户个人资料中显示例如:[用户名]在过去7天内发布了30个广告
这是我的SQL查询 - >
SELECT COUNT(*)
FROM table_name
WHERE user_id = '[user_id]' AND created_date > NOW() - INTERVAL 7 DAY
Run Code Online (Sandbox Code Playgroud)
所以在我的情况下,"table_name"包含来自所有用户的所有广告,并且" user_id='[user_id]'"我向用户显示他的广告数量,向用户B显示他的广告数量等...
所以这个查询工作,它从"[用户名]正确计算广告的数量,但是,例如,如果用户在网站的进入和删除的1,2或任何他的广告的号码,这个号码会被"minused"已发布30过去7天内的广告"
有人可以帮助我,我可以添加什么来查询,以便计数仍然显示正确的广告数量(在我的情况下是20个广告),即使广告被删除..
谢谢干杯