В этой статье мы рассмотрим, как скопировать одно текстовое или изображение в SQL Server с использованием утилиты textcopy.exe. Эта утилита находится в каталоге, содержащем стандартные файлы EXE SQL Server (по умолчанию C:MssqlBinn для SQL Server 6.5 и C:Mssql7Binn для SQL Server 7.0).
Утилита textcopy не документирована в SQL Server Books Online, но вы можете получить описание, набрав “textcopy /?” в командной строке. Утилита позволяет копировать указанное текстовое или изображение ‘столбец’ одной строки (указанной в “условии where”) указанной ‘таблицы’.
Если направление установлено на IN (/I), данные из указанного ‘файла’ копируются в SQL Server, заменяя существующее текстовое или изображение. С другой стороны, если направление установлено на OUT (/O), текстовое или изображение копируется из SQL Server в указанный ‘файл’, заменяя любой существующий файл.
Вот пример команды для использования утилиты textcopy:
TEXTCOPY /S [sqlserver] /U [login] /P [password] /D [database] /T [table] /C [column] /W "where clause" /F [file] /I|/O /K [chunksize] /Z /?
Давайте рассмотрим хранимую процедуру, которая упрощает использование утилиты textcopy:
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1)
)
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str
Используя эту хранимую процедуру, вы можете легко скопировать изображение в базу данных SQL Server. Например, чтобы скопировать изображение из файла “picture.bmp” в таблицу “pub_info” базы данных “pubs”, где “pub_id” равен ‘0736’, вы можете выполнить следующую команду:
sp_textcopy @srvname = 'ИмяСервера',
@login = 'Логин',
@password = 'Пароль',
@dbname = 'pubs',
@tbname = 'pub_info',
@colname = 'logo',
@filename = 'c:picture.bmp',
@whereclause = " WHERE pub_id='0736' ",
@direction = 'I'
Используя утилиту textcopy.exe и предоставленную хранимую процедуру, вы можете легко копировать текстовые или изображения в SQL Server, упрощая процесс управления и передачи данных.
Спасибо за прочтение этой статьи. Следите за новыми советами и трюками по SQL Server!