Я создал процедуру, которая захватывает все пользовательские таблицы в локальной БД на моем компьютере. Я хочу иметь возможность создавать плоский файл всех моих таблиц, используя BCP и SQL. Это фиктивная база данных в SQL 2000, соединяющаяся через проверку подлинности Windows. Я установил мою переменную пути окружения в WinXP SP2. Я создал новых пользователей для доступа к БД, отключил брандмауэр, используя доверенное соединение. Я перепробовал десятки форумов, не повезло.
В командной строке DOS я получаю ту же ошибку.
SQLState = 37000, NativeError = 4060
Ошибка = [Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Не удалось открыть базу данных, запрошенную при входе в систему «[HelpDesk-EasyPay». Ошибка входа.
Вот мой ИП:
@Path VARCHAR(100),
@UserName VARCHAR(15),
@PassWord VARCHAR(15),
@ServerName VARCHAR(15)
AS
set quoted_identifier off
set nocount on
declare @n int
declare @db varchar(40)
set @db=DB_NAME()
declare @TableName varchar(15)
declare @bcp varchar(200)
select identity(int,1,1) as tblNo,name tblname into #T from Sysobjects where xtype='u'
select @n=COUNT(*) from #T
WHILE (@n>0)
BEGIN
SELECT @TableName=tblname FROM #T WHERE tblno=@n
PRINT 'Now BCP out for table: ' + @TableName
SET @bcp = "master..xp_cmdshell 'BCP " + "[" + @db + ".." + @TableName + "]" + " OUT" + @Path + "" + @TableName+".txt -c -U" + @UserName + " -P" + @PassWord + " -S" + @ServerName + " -T" + "'"
EXEC(@bcp)
SET @n=@n-1
END
DROP TABLE #T
Может кто-нибудь посоветовать. Кажется, это проблема подключения или BCP? Точно сказать не могу.
edit: я запускаю это из анализатора запросов, потому что у меня 118 таблиц для вывода в плоский файл. Я, кажется, согласен, что это проблема аутентификации, потому что я пытался подключиться к master db с именем пользователя sa пароль root. это то, что установлено, и я получаю ту же ошибку: SQLState = 37000, NativeError = 4060
Заранее благодарю.
EJ