小编J3F*_*FFK的帖子

在临时表列TSQL中设置排序规则的正确方法

我有一个临时表,使用批量插入插入数据.但是,当我想将数据从临时表更新到普通表时,它会产生整理问题.我知道如何使用以下方法解决这个问题:

UPDATE RegularTable
SET r.Column1 = t.ColumnA
FROM RegularTable r INNER JOIN #TEMP t ON
r.Column1 COLLATE DATABASE_DEFAULT = 
t.ColumnA COLLATE DATABASE_DEFAULT
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法立即在临时表中设置排序规则,因此您不必在连接中使用排序规则?就像是:

CREATE TABLE #TEMP
Column1 varchar(255) COLLATE database_default,
Column2 varchar(60) 
Run Code Online (Sandbox Code Playgroud)

这是正确的编码,您是否必须为每个表或每列设置一次排序规则?如果在表格中设置了排序规则,那么您可以从连接中排除整理吗?

sql sql-server collate

10
推荐指数
1
解决办法
3万
查看次数

如何使用for xml路径查询结果阻止sqlcmd截断

在读完一个答案第二个答案以及sqlcmd上infopage之后,我仍然无法让以下工作.

我试图使用批处理文件中的sqlcmd将结果查询到xml文件中.

批处理文件如下所示:

sqlcmd -R -d DBName -i "c:\inputquery.sql" -h-1 -y 0 -o "c:\outputfile.xml"
Run Code Online (Sandbox Code Playgroud)

简化的SQL查询是:

:XML ON
SELECT '<?xml version="1.0" encoding="UTF-8"?>' +
CAST((
SELECT Columns FROM Table
FOR XML PATH ('Product'), ROOT('Products')
) 
AS NVARCHAR(MAX))
Run Code Online (Sandbox Code Playgroud)

输出是一个大约1025Kb的xml文件,一个截断的字符串.我认为它截断到1mb,但你怎么能阻止这个呢?目标是将完整的查询结果放入xml文件中.据我所知,所有选项都已使用.顺便使用TSQL SSMS2008.

xml t-sql batch-file sql-server-2008 for-xml-path

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

更新后的TSQL触发器在一个IF UPDATE中检查多列上的更新

TSQL中After Update触发器的基本语法是:

CREATE TRIGGER [dbo].[triggerName]
   ON [dbo].[Table]
   AFTER UPDATE, INSERT --trigger when Update or Insert in table
AS BEGIN
    SET NOCOUNT ON;
    IF UPDATE (ColumnA) -- if ColumnA updates start
    begin
        UPDATE Table
        SET ColumnC = ColumnA + ColumnB -- recalculate Column C
    end 
    IF UPDATE (ColumnB) -- if ColumnB updates start
    begin
        UPDATE Table
        SET ColumnC = ColumnA + ColumnB -- recalculate Column C
    end 
END
Run Code Online (Sandbox Code Playgroud)

现在我觉得上面可以工作,但是可以将两个IF UPDATES合二为一起吗?:这样的事情:

IF UPDATE (ColumnA) OR (ColumnB) -- if ColumnA or ColumnB updates …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server triggers sql-update

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

什么是 T-SQL 查询中的 :XML ON 以使用 SQLCMD 将数据导出到 XML?

在这篇关于使用 BCP 或 SQLCMD 通过 TSQL 将数据导出到 XML 的博客文章中,我遇到了这行代码:

:XML ON

SELECT
    *
FROM
    dbo02.ExcelTest
FOR XML AUTO, ELEMENTS, ROOT('doc')
Run Code Online (Sandbox Code Playgroud)

我尝试在 sql 查询中使用它,然后通过批处理文件中的 sqlcmd 触发,它确实返回了正确的 xml 文件。如果没有它,:XML ON它会返回网页上所述的奇怪值。

奇怪的是,SSMS (2008) 在解析或执行查询时显示错误的语法。

有什么:XML ON作用以及如何使用它?为什么 SSMS 无法识别该代码行?

xml t-sql bcp sqlcmd sql-server-2008

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

对文件名中除特定字符外的所有文件进行Robocopy

使用robocopy命令我需要复制所有文件,但排除文件名中具有特定字符的文件?例如,复制所有包含下划线_的文件名的.jpg文件.

我试过这个命令,但它不起作用:

Robocopy C:\SourceFolder C:\DestFolder ^[^_]+.jpg$

可能是一件非常简单的事我在这里俯瞰,但是什么?

还有/ XF标志来排除某些文件类型,但是(如何)它可以用来排除文件名中包含下划线的文件名?

regex robocopy

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

XSLT 根据子元素属性对父元素进行排序

尽管这个问题已经被问过多次,比如这里这里,而且答案似乎都适用于该特定问题,但我无法让它在我的情况下发挥作用。

这个xml

 <root>
  <Orders>
    <Order type="S">
      <Ref>ABC123</Ref>
      <OrderedBy>
        <Debtor code="13456"></Debtor>
      </OrderedBy>
      <DeliveryMethod code="Truck"></DeliveryMethod>
      <OrderLine line="1">
        <Item code="ABC100400"></Item>
        <Quantity>1</Quantity>
      </OrderLine>
      <OrderLine line="2">
        <Item code="XYZ490204" type="S" searchcode="XYZ490204"></Item>
        <Quantity>2</Quantity>
      </OrderLine>
      <OrderLine line="3">
        <Item code="DEF1210847" type="S" searchcode="DEF1210847"></Item>
        <Quantity>4</Quantity>
      </OrderLine>
    </Order>
    <Order type="S">
      <Ref>ABC123</Ref>
      <OrderedBy>
        <Debtor code="BLABLA" number="802416" type="C"></Debtor>
      </OrderedBy>
      <DeliveryMethod code="Barefoot"></DeliveryMethod>
      <OrderLine line="1">
        <Item code="QQQ123456" type="S" searchcode="QQQ123456"></Item>
        <Quantity>1</Quantity>
      </OrderLine>
      <OrderLine line="2">
        <Item code="JJJ490204" type="S" searchcode="JJJ490204"></Item>
        <Quantity>3</Quantity>
      </OrderLine>
    </Order>
  </Orders>
</root>
Run Code Online (Sandbox Code Playgroud)

需要转换成这个xml:

 <root>
      <Orders>
        <Order type="S">
          <Ref>ABC123</Ref>
          <OrderedBy>
            <Debtor …
Run Code Online (Sandbox Code Playgroud)

xml sorting xslt

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