久久久久久久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)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 久久视频免费观看 | 日韩电影一区二区三区 | 成人在线免费观看视频 | a黄视频| 狠狠操网站| 亚洲精品中文字幕中文字幕 | 成人欧美一区二区三区黑人孕妇 | 三级黄色片在线 | 久久久高清 | 成人精品一区二区三区 | 毛片链接| 精品国产乱码久久久久久蜜柚 | 亚洲精品自拍 | 欧美成人一区二免费视频软件 | 久久久久黑人 | 亚洲免费视频播放 | 福利视频一区二区 | 成人区一区二区三区 | 久久久涩 | 欧美日韩一卡二卡 | 亚洲免费网站 | 久久久女女女女999久久 | 中文字幕电影在线观看 | 国产精品资源在线 | 精品中文字幕视频 | 国产精品久久久久久妇女 | 婷婷狠狠 | 色综久久 | 韩日精品一区 | 波多野结衣av中文字幕 | 精品videossex高潮汇编 | 久久国产免费 | 日本一区二区三区在线观看 | 懂色中文一区二区在线播放 | 在线一区二区观看 | 欧美日韩免费视频 | 黄色a三级 | 中文字幕三区 | 久久精品国产v日韩v亚洲 | 亚洲免费视频播放 | 国产精品免费一区二区三区四区 |