gpt4 book ai didi

sql-server - sql server 2008 中的 BCP 实用程序 - 过程需要 varchar 类型的参数 'no_output'

转载 作者:行者123 更新时间:2023-12-04 02:11:19 29 4
gpt4 key购买 nike

我正在尝试使用 bcp 实用程序将所有数据库表的列名导出到 csv 文件,以便稍后与合并到一个文件中的表中的数据合并,并将检索到的列名作为文件中的标题。

我复制了这个问题的答案中的代码:export table to file with column headers (column names) using the bcp utility and SQL Server 2008 .但是我收到了这个错误:

Msg 214, Level 16, State 201, Procedure xp_cmdshell, Line 1 Procedure expects parameter 'no_output' of type 'varchar'.

这是我的代码:

DECLARE @var NVARCHAR(MAX)

DECLARE curRunning
CURSOR LOCAL FAST_FORWARD FOR
SELECT name FROM sysobjects WHERE type = 'U'

OPEN curRunning

FETCH NEXT FROM curRunning INTO @var

WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @Exec2 NVARCHAR(MAX),@sql1 VARCHAR(1000)
SET @sql1 ='"DECLARE @colnames VARCHAR(max);SELECT @colnames= COALESCE(@colnames + '+''','''+' , '''') + column_name from dbname.INFORMATION_SCHEMA.columns where TABLE_NAME='+@var+'; select @colnames;"'
SET @Exec2 = 'exec master.dbo.xp_cmdshell ''bcp '+@sql1+' queryout "C:\migration\HeadersOnly'+@var+'.csv" -c -k -T -t,'''
PRINT @Exec2
EXECUTE sp_executesql @Exec2
FETCH NEXT FROM curRunning INTO @var
END

CLOSE curRunning
DEALLOCATE curRunning

最佳答案

您不能将 varchar(max) 与 xp_cmdshell 一起使用。

尝试一个介于 1 到 8000 之间的数字。

varchar(max) 的容量为 2GB,在后台作为 TEXT 数据类型工作,所以不好

您将需要使用 VARCHAR(256) 或类似的最多 VARCHAR(8000)

关于sql-server - sql server 2008 中的 BCP 实用程序 - 过程需要 varchar 类型的参数 'no_output',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324113/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com