Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 从MS SQL Server Management Studio中的查询结果复制大数据_Sql Server 2008_Ssms - Fatal编程技术网

Sql server 2008 从MS SQL Server Management Studio中的查询结果复制大数据

Sql server 2008 从MS SQL Server Management Studio中的查询结果复制大数据,sql-server-2008,ssms,Sql Server 2008,Ssms,我有一个返回大型“ntext”结果的查询。我想把它复制到一个纯文本编辑器(记事本)上,但只复制了一部分 我尝试增加查询选项->结果->文本,但最大值似乎是8192,这对我来说是不够的 关于如何实现这一点有什么想法吗 我正在使用SQLServerManagementStudio 2008,如果这很重要的话 蒂亚! Raj试试这样的方法: --creates file on server declare @cmd varchar(1000) select @cmd = 'osql -U -P -S

我有一个返回大型“ntext”结果的查询。我想把它复制到一个纯文本编辑器(记事本)上,但只复制了一部分

我尝试增加查询选项->结果->文本,但最大值似乎是8192,这对我来说是不够的

关于如何实现这一点有什么想法吗

我正在使用SQLServerManagementStudio 2008,如果这很重要的话

蒂亚!
Raj

试试这样的方法:

--creates file on server
declare @cmd varchar(1000)
select @cmd = 'osql -U -P -S -Q"select * from yourtable" -o"c:\yourtextfile.txt" -w50000'
exec master..xp_cmdshell @cmd

又快又脏的方式

  • 右键单击表格-“编辑前200行”
  • 单击“显示SQL窗格”
  • 编辑SQL以返回所需的值
  • 单击执行SQL
  • 现在你可以复制大结果了

  • 我刚刚用这种方法复制了87K文本。

    我获取整个数据的方法是使用“将结果另存为…”选项,然后选择TXT文件,然后您可以用记事本++之类的好编辑器打开它,您将拥有所有数据


    Cheers=0)

    我可以问一下,为什么您希望通过SSM访问如此大量的数据(除了方便之外)?我只对两行感兴趣,实际上我只想检索两条存储为文本的SMTP邮件(用于验证某些内容)。多亏了三种解决方案,编写程序来提取这些信息似乎有些过分。“服务器”是指将在DB服务器上创建文件吗?啊,这对我来说几乎没用(因为我无法访问DB服务器文件系统)@Raj,是的,服务器在数据库的机器上。只有XML类型是这样工作的,文本类型限制为65536+1,对于编辑前200行选项,它可能限制为65k,但肯定比从select语句复制要好,在我的例子中,它还将您的格式设置为一个格式化的JSON字符串。这对我不适用。与.csv导出相同的输出,这是不够的。仍然被切断。
    --creates file on server
    master..xp_cmdshell 'bcp your_table_or_view out c:\file.bcp -S -U -P -c '
    
    --the limit of 8192 is per column, so split your column into multiple columns
    --you will get a 1 character gap between these "columns" though
    ;WITH YourQuery AS
    (
        SELECT
            col1
            FROM ...
    )
    SELECT SUBSTRING(col1,1,8192), SUBSTRING(col1,8193,8192), SUBSTRING(col1,16385,8192) --...