我有一个临时表,使用批量插入插入数据.但是,当我想将数据从临时表更新到普通表时,它会产生整理问题.我知道如何使用以下方法解决这个问题:
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)
这是正确的编码,您是否必须为每个表或每列设置一次排序规则?如果在表格中设置了排序规则,那么您可以从连接中排除整理吗?
在读完一个答案和第二个答案以及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.
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) 在这篇关于使用 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 无法识别该代码行?
使用robocopy命令我需要复制所有文件,但排除文件名中具有特定字符的文件?例如,复制所有包含下划线_的文件名的.jpg文件.
我试过这个命令,但它不起作用:
Robocopy C:\SourceFolder C:\DestFolder ^[^_]+.jpg$
可能是一件非常简单的事我在这里俯瞰,但是什么?
还有/ XF标志来排除某些文件类型,但是(如何)它可以用来排除文件名中包含下划线的文件名?
尽管这个问题已经被问过多次,比如这里和这里,而且答案似乎都适用于该特定问题,但我无法让它在我的情况下发挥作用。
这个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) t-sql ×3
xml ×3
sql ×2
sql-server ×2
batch-file ×1
bcp ×1
collate ×1
for-xml-path ×1
regex ×1
robocopy ×1
sorting ×1
sql-update ×1
sqlcmd ×1
triggers ×1
xslt ×1