使用 SQL Server 2008。
首先,我不是DBA。但当涉及到 sp、触发器、表、创建和规范化时,我可以绕过数据库。我是一名开发人员。
但通过这项新工作,我继承了一个大型数据库,其中有许多正在运行的作业。
我前任的帐户被禁用,当然一些工作开始失败。
在搜索、测试并失败之后,我现在需要发布有关此问题的一些意见。
执行存储过程时作业失败,我已经检查过。它正在更新有问题的数据库。
首先,我改变了工作的所有者:
EXEC MSDB.dbo.sp_update_job
@job_name = 'MyJob',
@owner_login_name = 'NT AUTHORITY\SYSTEM'
GO
Run Code Online (Sandbox Code Playgroud)
我尝试过sa帐户、sqlserveragent等,但出现同样的错误。我确保这些新所有者拥有该数据库的正确权限。
对于数据库 MyDB 中请求的用户 dbo,EXECUTE AS USER 失败。
即使我更改了作业所有者,用户也不会更改 dbo 用户的错误消息。
还有人有我可能忽略的其他建议吗?
谢谢,
更新:
问题已经解决了。今天学到了新东西!
看看这篇文章:http://blog.strictly-software.com/2009/09/database-owner-sid-recorded-in-master.html
我希望这对将来的其他人有帮助,因为我在这个问题上浪费了一些时间,并且只用了一小行 sql 来修复它。似乎总是如此,不是吗?
使用Visual Studio 2010和C#
这已经工作了很多年......
string myString= txtSomeMultiLineTextBox.Text;
string str = myString.Replace(System.Environment.Newline, "<br />");
Run Code Online (Sandbox Code Playgroud)
设置断点时,如果myString = LineOne \nLineTwo \nLineThree
\n 未被替换...
则str = myString
没有替换.
myString保持不变
我到处都在研究Environment.Newline以及与操作环境的差异,我使用的是Windows 7.
这个环境不会改变.
为什么Environment.Newline没有读取\n?
谢谢,
我从未见过这种情况发生在我多年的编程中,并且不得不问是否有其他人知道为什么这是....
Excel.Worksheet worksheet;
Excel.Sheets sheets;
Excel.Workbook theWorkbook;
Excel.Application ExcelObj = null;
try
{
ExcelObj = new Excel.Application();
worksheet = new Excel.Worksheet();
string sheetName;
theWorkbook = ExcelObj.Workbooks.Open(txtImportFilePath.Text, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", true, true, 0, true, 1, 0);
sheets = theWorkbook.Worksheets;
}
catch (Exception ex)
{
MessageBox.Show("An error occured: " + ex.InnerException.ToString);
}
finally
{
worksheet = null;
sheets = null;
theWorkbook = null;
ExcelObj.Quit();
ExcelObj = null;
}
Run Code Online (Sandbox Code Playgroud)
catch块本身导致程序崩溃并出现错误.实际错误发生在该行:theWorkbook = ExcelObj.Workbooks.Open(.....它尝试打开的文件已损坏或扩展名与错误不匹配.
但是当消息框尝试显示时,有一个对象引用未设置为实例错误.
这不是因为消息框.这是因为ex.InnerException.我尝试做了一些不同的事情,并在ex.InnerException行上抛出了错误:
Catch(Exception ex)
{
string …Run Code Online (Sandbox Code Playgroud)