久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

整理聲明的 SQL 變量

Collate declared SQL variable(整理聲明的 SQL 變量)
本文介紹了整理聲明的 SQL 變量的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我一直在查看這段代碼復制如下,它尋找非 ASCII 字符......

I've been looking at this code, reproduced below, that looks for non-ASCII characters...

select line,
  patindex('%[^ !-~]%' COLLATE Latin1_General_BIN, Line) as [Position],
  substring(Line, patindex('%[^ !-~]%' COLLATE Latin1_General_BIN, Line), 1) as [InvalidCharacter],
  ascii(substring(line, patindex('%[^ !-~]%' COLLATE Latin1_General_BIN, Line), 1)) as [ASCIICode]
from staging.APARMRE1
where patindex('%[^ !-~]%' COLLATE Latin1_General_BIN, Line) > 0

我突然想到我想為 '%[^ !-~]%' COLLATE Latin1_General_BIN 聲明一個變量,而不是每次都寫出來,但是

and it just strikes me that I'd want to declare a variable for '%[^ !-~]%' COLLATE Latin1_General_BIN instead of writing it out every time, but

declare @regex varchar(20) = '%[^ !-~]%' COLLATE Latin1_General_BIN;

select line,
  patindex(@regex, Line) as [Position],
  substring(Line, patindex(@regex, Line), 1) as [InvalidCharacter],
  ascii(substring(line, patindex(@regex, Line), 1)) as [ASCIICode]
from staging.APARMRE1
where patindex(@regex, Line) > 0

只是不做同樣的事情.我只是缺少一些語法嗎?不可能嗎?

just doesn't do the same thing. Am I just missing some syntax? Is it impossible?

推薦答案

這是正常的.創建變量時,它采用數據庫的默認排序規則.

It is normal. When you create a variable it takes default collation for database.

DECLARE @regex varchar(20) = '%[^ !-~]%' COLLATE Latin1_General_BIN;

帶有 COLLATE Latin1_General_BIN 的字符串被隱式轉換為帶有數據庫默認排序規則的字符串.

Your string with COLLATE Latin1_General_BIN is implicitly casted to string with your database default collation.

<小時>例如數據庫是Case-Insensitive.我使用您的語法創建區分大小寫的語法并檢查它的元數據:


For example database is Case-Insensitive. I use your syntax to create case-sensitive one and check metadata of it:

DECLARE @v1 varchar(100) = 'ABC' COLLATE Latin1_General_CS_AS;

SELECT name, collation_name
FROM sys.dm_exec_describe_first_result_set(
    N'SELECT @v1 AS [@v1]', N'@v1 varchar(100)', 0);

LiveDemo

輸出:

╔══════╦══════════════════════════════╗
║ name ║        collation_name        ║
╠══════╬══════════════════════════════╣
║ @v1  ║ SQL_Latin1_General_CP1_CI_AS ║
╚══════╩══════════════════════════════╝

變量(不包括表變量中的列)不允許定義排序規則,因此沒有如下語法:

Variables(excluding columns in table variables) do not allow to define collation so there is no syntax like:

DECLARE @v1 varchar(100) COLLATE Latin1_General_CS_AS = 'ABC' ;
-- Incorrect syntax near the keyword 'COLLATE'.

這篇關于整理聲明的 SQL 變量的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創建視圖?)
Create calculated value based on calculated value inside previous row(根據前一行內的計算值創建計算值)
How do I stack the first two columns of a table into a single column, but also pair third column with the first column only?(如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?) - IT屋-程序員軟件開發技
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 亚洲一区在线播放 | 久久国| 亚洲精品18 | 国产精品久久久久久吹潮 | 农村真人裸体丰满少妇毛片 | 中文字幕av中文字幕 | 在线成人 | 色婷婷久久久亚洲一区二区三区 | 亚洲一区二区三区免费视频 | 日本在线黄色 | 亚洲精品国产第一综合99久久 | 一级做a爰片久久毛片免费看 | 天天干天天草 | 日韩高清在线观看 | 草久久 | 午夜精品久久久久久久久久久久久 | 在线视频一区二区 | 亚洲视频欧美视频 | 在线播放中文字幕 | 久久青青| 亚洲日本乱码在线观看 | 久久久蜜臀国产一区二区 | 成人av高清| 欧美日日 | 久久久激情视频 | 亚洲成人观看 | 国产精品乱码一区二区三区 | 欧美视频一区二区三区 | 亚洲精品久久久久avwww潮水 | 99re在线视频观看 | 久久久影院 | 久久国产亚洲 | 欧美日韩淫片 | 999久久久国产精品 欧美成人h版在线观看 | 91精品国产91久久综合桃花 | 午夜精品视频一区 | 99久久精品国产一区二区三区 | 日韩黄色av| 在线看一区二区 | 中文字幕不卡在线观看 | 日韩欧美国产精品 |