首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量插入参数化FIRSTROW

问批量插入参数化FIRSTROW
EN

Stack Overflow用户
提问于 2014-05-17 13:06:32
回答 2查看 693关注 0票数 1

是否有办法在批量插入查询中参数化FIRSTROW?

这是我的select语句SELECT TOP 1 mid from movie_titles ORDER BY mid DESC

返回整数值,并希望在bulk insert语句中提供其结果。

代码语言:javascript
复制
BULK
INSERT movie_titles
FROM 'A:\Netflix\movie_titles.txt'
WITH
(
FIRSTROW = 'here i want to provide the result of above select query',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-17 14:31:27

不可能为FIRSTROW提供@变量名称。如果要这样做,则需要通过字符串连接动态创建BULK INSERT语句,并使用EXEC或sp_execute执行该语句。

票数 3
EN

Stack Overflow用户

发布于 2014-05-17 14:49:01

AFAIK,您不能直接将参数传递给FIRSTROW。相反,您可以像下面这样以动态SQL的形式执行BULK INSERT (虽然没有测试,但这将使您开始工作)

代码语言:javascript
复制
DECLARE @midvar INT;
SELECT TOP 1 @midvar = cast(mid as INT) from movie_titles ORDER BY mid DESC;
DECLARE @bulk_cmd varchar(1000);
SET @bulk_cmd = 'BULK INSERT movie_titles
FROM ''A:\Netflix\movie_titles.txt'' 
WITH (ROWTERMINATOR = '''+CHAR(10)+'' +
'FIELDTERMINATOR ='',''
FIRSTROW = ' + CAST(@midvar AS VARCHAR(10)) + ')';
EXEC(@bulk_cmd);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23711708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档