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

整理聲明的 SQL 變量

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

問題描述

我一直在查看這段代碼復(fù)制如下,它尋找非 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?

推薦答案

這是正常的.創(chuàng)建變量時,它采用數(shù)據(jù)庫的默認排序規(guī)則.

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 的字符串被隱式轉(zhuǎn)換為帶有數(shù)據(jù)庫默認排序規(guī)則的字符串.

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

<小時>例如數(shù)據(jù)庫是Case-Insensitive.我使用您的語法創(chuàng)建區(qū)分大小寫的語法并檢查它的元數(shù)據(jù):


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 ║
╚══════╩══════════════════════════════╝

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

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'.

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

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

相關(guān)文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉(zhuǎn)換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創(chuàng)建視圖?)
Create calculated value based on calculated value inside previous row(根據(jù)前一行內(nèi)的計算值創(chuàng)建計算值)
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屋-程序員軟件開發(fā)技
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉(zhuǎn)換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 日韩精品在线一区 | 亚洲看片网站 | 日本不卡一区二区三区在线观看 | 四虎成人精品永久免费av九九 | 国产乱码高清区二区三区在线 | 欧美网站一区 | 黄色在线免费网站 | 成年女人免费v片 | 黑人巨大精品 | 国产免费一区二区三区 | 91精品综合久久久久久五月天 | 阿v视频在线观看 | 国产精品色综合 | 亚洲免费在线 | 色爱av| 欧美成人精品欧美一级 | 免费视频成人国产精品网站 | 欧美 视频 | 国产精品久久久久aaaa九色 | 国产97视频在线观看 | 亚洲一区免费 | www九色| 91在线电影 | 色888www视频在线观看 | 久草精品视频 | 午夜免费网 | 中文字幕综合 | 午夜精品视频一区 | 一级免费毛片 | 国产成都精品91一区二区三 | 一区二区福利视频 | 久久成人一区 | 激情久久久久 | 久久久成人精品 | www视频在线观看 | 久久国产精品亚洲 | 91精品国产综合久久婷婷香蕉 | 亚洲免费网 | 淫片专区 | 四虎影院新地址 | 精品一区在线看 |