小编Jam*_*mes的帖子

有没有一种优雅的方式将查询结果直接发送到物理打印机?

我有一个奇怪的要求,要安排报告并将其打印到打印机

报告本身非常简单,可以放在一个页面上。我可以将它打印到 txt 中,这样就可以了(尽管我愿意接受关于更好产品的建议)。

这是代码。有用。但我不喜欢。具体来说,我想取消嵌套的@bcp 和@SQL。

问题:有没有更优雅的方法来做到这一点?

declare @filepath varchar(255),
@filename varchar(255),
@filetype varchar(255),
@sql nvarchar(max),
@coverpage_text nvarchar(max)

set @filepath = 'C:\users\jmay\documents\'
SET @filename = 'TestFile'
set @filetype = '.txt'

--output to txt
set @sql = N'declare @bcp varchar(4000)
set @bcp = ''bcp " select * from test_data " queryout ' 
+ @filepath +  @filename + @filetype + ' -t " - " -c -T -d DBA''
print @bcp

EXECUTE master.dbo.xp_cmdshell @BCP'

print @sql
 exec sp_executesql @sql …
Run Code Online (Sandbox Code Playgroud)

sql-server

14
推荐指数
1
解决办法
4702
查看次数

如何在区分大小写的数据库中执行不区分大小写的 LIKE?

我的供应商要求数据仓库数据库区分大小写,但我需要对其进行不区分大小写的查询。

在区分大小写的数据库中,您如何将其编写为不区分大小写?

    Where Name like '%hospitalist%'
Run Code Online (Sandbox Code Playgroud)

sql-server collation like

14
推荐指数
3
解决办法
7万
查看次数

将逗号放入大量数字的最佳方法

我开始了一份新工作,它涉及到一堆大数字。有没有一种简单的方法可以在intordecimal字段中添加逗号以使其可读?

例如,SQL Server 输出左侧的列,但为了我自己的理智,我需要它看起来像右侧的列:

2036150 -> 2,036,150  
Run Code Online (Sandbox Code Playgroud)

...或者我必须写一些令人发指的

left(right(vandalized_data),6),3) + ',' + right(left(vandalized_data),6),3)
Run Code Online (Sandbox Code Playgroud)

功能?

完美的东西是显示网格中的逗号,然后是输出中的纯整数。

sql-server number-formatting

11
推荐指数
2
解决办法
1万
查看次数

您在哪里请求 SSMS 中的新功能?

我想问微软:

  1. 根据页面所连接的服务器对 SSMS 中的页面进行颜色编码

  2. 查询结果返回时让它运行。

问题:您如何要求这些功能?

ssms

11
推荐指数
2
解决办法
2452
查看次数

从整数输入重建日期的最佳方法是什么?

我有一堆财务报告,我们希望能够将两个输入(年和季度)作为变量传递给它们。

我是这样做的,但我真的不喜欢它:

    declare @quarter int,
    @year int,
    @date date

    set @quarter = 4
    set @year = 2018


    set @date = cast(@year as varchar(4)) + '-01-01'
    set @date = dateadd(quarter, @quarter - 1, @date)


    print @date
Run Code Online (Sandbox Code Playgroud)

问题从整数输入重建日期的最佳方法是什么?

想要的结果:

    2018-10-01
Run Code Online (Sandbox Code Playgroud)

sql-server-2008-r2

8
推荐指数
3
解决办法
1354
查看次数

如何将整个数据库备份到文本文件

如果它很愚蠢并且有效,那它仍然是愚蠢的。

关于 GDPR 的喧嚣让我思考 - 如果您必须进行备份并修改/删除数据,您会怎么做?破解打开 .bak 文件对我来说听起来很难。但是打开一个 .txt 文件很容易。

我可以将我的数据库备份到文本文件中,从而更轻松地从备份中删除历史记录吗?

sql-server backup export scripting

7
推荐指数
1
解决办法
2642
查看次数

为什么对象名称不能以数字开头?

例如,如果我使用 name 创建视图'4aii',为什么 SQL Server 关心它以 开头4?我可以打电话给桌子FouraiiIVaii

此外,[]在幕后做什么以允许将任何字符串用作名称?

一根绳子就是一根绳子,amirite?

sql-server identifier

7
推荐指数
4
解决办法
1万
查看次数

根据表的外键约束对表列表进行排序的最佳方法是什么

我正在处理一项 etl 任务,该任务从一个模式中获取表(没有约束)并将它们插入到相同的表中(加上约束)。

我不想打出无数的插入语句,所以我写了一些如下所示的动态 sql:

declare @table varchar(255),
@stgtable varchar(255),
@columns varchar(max),
@sql nvarchar(max)

declare c cursor for

select table_name from INFORMATION_SCHEMA.tables

open c

fetch from c into @table

while @@FETCH_STATUS = 0
begin

set @stgtable = replace(right(@table, len(@table) - 1), 'LZSTG','STG')

--print @stgtable

select @columns = stuff( (
    select ', ' + Column_Name from information_schema.columns
    where Table_Name = @table
    for xml path ('')),1,2,'')
--print @columns

begin try
set @sql = 'truncate table ' + @stgtable 
exec sp_executesql @sql
set …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2016

7
推荐指数
1
解决办法
282
查看次数

为什么在备份期间不能收缩事务日志?

我有一个简单恢复模式的大型数据库(供应商要求),花了 3 天时间将其备份到新托管公司的服务器。

第三天早上,由于事务日志已填满其驱动器,DB 下线。

我的理解是 SQL Server 将开始回收空间。更有趣的是,在我给它更多空间之前,我认为数据库不会再次开始工作——它在备份完成后仍然被破坏。不过,我没有花时间进行正确的调试,所以我不知道为什么会卡住。

问题:为什么 SQL Server 在 Simple Recovery 中不能在备份时回收其事务日志?

sql-server-2008 sql-server

6
推荐指数
1
解决办法
729
查看次数

你如何写入一个有空格的文件夹?

我有一堆简单的 SSIS 包,可以将 SQL 数据输出到 excel,然后我重命名文件并将它们移到最终用户。

他们中的一些人使用带有空格的文件路径,他们对使用新文件夹并不感兴趣。这是我正在使用的代码:

    declare @date varchar(25),
    @sql varchar(1000)

    set @date = cast(datepart(month, current_timestamp) as varchar(2)) + '_' +  cast(datepart(day, current_timestamp) as varchar(2)) + '_' +  cast(datepart(year, current_timestamp) as varchar(4))
    print @date

    set @sql = 'copy D:\Data\ED_72.xlsx \\ehsintra3\ED_72_weekly\ED_72_' + @date + '.xlsx';
    print @sql

    exec  xp_cmdshell @sql
Run Code Online (Sandbox Code Playgroud)

但如果没有下划线,它就无法工作。

问题如何在没有下划线的情况下进行这项工作?

sql-server command-line ssis

5
推荐指数
2
解决办法
6101
查看次数