如何使用 SQLCMD 从本地文件插入二进制数据?
我需要将文件中的二进制数据插入 SQL Server 中的 varbinary(max) 列,作为部署脚本的一部分。
该文件位于本地计算机上,SQL Server 位于远程计算机上。
这是数据表定义,
CREATE TABLE [dbo].[Config] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[Cfg] VARBINARY(MAX) NOT NULL
);
我需要类似伪命令的东西
INSERT INTO Config(ID, Name, Cfg) VALUES (0, 'Default', ????('Default.cfg')??? )
,即数据是从本地文件中获取的。
我该怎么做?
I need to insert binary data from a file into a varbinary(max) column in SQL Server as a part of my deployment script.
The file is on the local machine, SQL Server is on the remote.
Here is the data table definition
CREATE TABLE [dbo].[Config] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[Cfg] VARBINARY(MAX) NOT NULL
);
I need something like this pseudo-command
INSERT INTO Config(ID, Name, Cfg) VALUES (0, 'Default', ????('Default.cfg')??? )
i.e. data is taken from a local file.
How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您绝对可以通过使用指向文件路径的
OPENROWSET()
来使用 sqlcmd 将二进制数据插入和更新到VARBINARY(MAX)
字段。请注意,文件路径不能动态连接或作为参数传递,而是按原样硬编码。T-SQL (另存为 .sql 脚本)
sqlcmd (命令行)
Absolutely you can insert and update binary data into a
VARBINARY(MAX)
field with sqlcmd by usingOPENROWSET()
pointing to path of file. Do note the file path cannot be dynamically concatenated or passed as a parameter but hard coded as is.T-SQL (save as .sql script)
sqlcmd (command line)
谷歌“SQL BULK INSERT”至少可以让您从文件中插入一些内容,尽管它适用于多行。
Google 'SQL BULK INSERT' that can get you at least some insertion from files, though it is meant for multiple rows.
无论如何,仅使用 SQLCMD 是不可能实现这一点的。
这里需要一个更强大的部署工具。
By all means this is not possible with SQLCMD alone.
A more powerful deployment tool is needed here.