У меня есть локальная база данных SQL 2000. Мое приложение Winform внезапно умерло при попытке сохранить все сохраненные процедуры, которые не изменились. Вот сообщение об ошибке:
Сервер: сообщение 7404, уровень 16, состояние 2, процедура RecordCurrentUser2, строка 45
Сервер не может загрузить DCOM.
Затем я заметил, что когда я пытаюсь изменить SP с помощью Query Analyzer, я получаю ту же ошибку при попытке выполнить команду ALTER. Я урезал хранимую процедуру, оставив основной код, который вызывает ошибку при выполнении:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE dbo.RecordCurrentUser2
(
@xmlUser varchar(8000)
)
AS
BEGIN
DECLARE @Now datetime
DECLARE @ChangedRecordCount int
--Normally this is commented out, but for testing, we'll hard code a param value:
SET @xmlUser = '<User>
<User>
<EmailId>chad.smith@effedupcompany.com</EmailId>
<LastName>Chad</LastName>
<FirstName>Smith</FirstName>
<Initials />
<DomainName>NA</DomainName>
<Account>SMITH</Account>
<TelephoneNumber>179-1458</TelephoneNumber>
<PeoplesoftId>031X45</PeoplesoftId>
<Department>Order to Collect BI Reporting</Department>
<StreetAddress>58 Hill Road</StreetAddress>
<PostalCode>06333</PostalCode>
<Location>MAIN</Location>
<State>AK</State>
<Country>United States</Country>
</User>
</User>'
DECLARE @DocHandle int
SET @Now = GETUTCDATE()
-- Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @DocHandle OUTPUT, @xmlUser
--Put the contents of the XML string into a temp table
SELECT
EmailId
,LastName
,FirstName
,Initials As Initials
,DomainName
,Account
,TelephoneNumber
,PeoplesoftId
,Department
,StreetAddress
,PostalCode
,Location
,State
,Country
,OtherTelephone
,NonUnisysDomainName
,NonUnisysAccount
INTO
#TempItems
FROM
OPENXML (@DocHandle, '/User/User', 2)
WITH
(
EmailId nvarchar(80)
,LastName nvarchar(50)
,FirstName nvarchar(50)
,Initials nvarchar(30)
,DomainName nvarchar(10)
,Account nvarchar(10)
,TelephoneNumber nvarchar(50)
,PeoplesoftId nvarchar(50)
,Department nvarchar(50)
,StreetAddress nvarchar(50)
,PostalCode nvarchar(50)
,Location nvarchar(80)
,State char(2)
,Country nvarchar(30)
,OtherTelephone nvarchar(50)
,NonUnisysDomainName nvarchar(10)
,NonUnisysAccount nvarchar(10)
)
END
На моем компьютере запущены следующие службы, хотя они могут быть неактуальными:
Координатор распределенных транзакций (ведение заметок в локальной базе данных)
COM ++
Недавно я ничего не устанавливал намеренно, хотя помню, что патч MS автоматически применялся в соответствии с политикой компании, не уверен, что это было и как это выяснить.
Как я могу устранить эту ошибку?