SQL2005關於quotename的用法

2022-08-31 04:03:08 字數 1328 閱讀 2438

首先,sqlserver裡的識別符號有一定的規則,比如  你 create table abc 123(...) 那麼中間含有空格,它不是符合規則的。

你會寫做 create table [abc 123](....) 即以來定界識別符號。

quotename將 字串成為有效的識別符號。

它有什麼用呢? 我舉個例子:

你有個表名字叫做 aabb

當某些應用動態語句查詢時 你如何寫呢 exec('select * from aabb') ?x

set @sql='select * from ' + quotename('aabb') exec(@sql)

當然你也可以直接寫出轉義的寫法

select * from [aa]bb]

也就是說,quotename 使函式中的輸入成為乙個有效的識別符號。 比如上例中 aabb 不是乙個有效的識別符號。

還有一點就是quotename函式有幾種寫法:   quotename('aa') 生成的有效的識別符號為 [aa]   quotename('aa','') 生成的有效的識別符號為 [aa]   quotename('aa','''') 生成的有效的識別符號為 'aa'

解釋2:

簡單來說吧 比如你有乙個表,名字叫 index

你有乙個動態查詢,引數是表名

declare

@tbname

varchar

(256

) set

@tbname='

index'--

-查這個表裡的資料:

print('

select * from '+

@tbname

) exec('

select * from '+

@tbname)--

這樣print出來的資料是

select

*from

index

因為index是字鍵字,肯定出錯,加上括號就可以了:

select

*from

[index

]這便有了quotename,即:

print('

select * from '+

quotename

(@tbname

)) --

結果:select * from [index]

exec('

select * from '+

quotename

(@tbname

))返回帶有分隔符的 unicode 字串,分隔符的加入可使輸入的字串成為有效的 microsoft sql server 2005 分隔識別符號。

SQL2005關於quotename的用法

首先,sqlserver裡的識別符號有一定的規則,比如 你 create table abc 123 那麼中間含有空格,它不是符合規則的。你會寫做 create table abc 123 即以來定界識別符號。quotename將 字串成為有效的識別符號。它有什麼用呢?我舉個例子 你有個表名字叫做 ...

SQL2005乾淨解除安裝

昨天解除安裝安裝sql2005,安裝顯示成功之後可是就是沒有進入sql的檔案,只有配置工具,於是就解除安裝了,這下可好,解除安裝沒卸乾淨,又重新安裝,這次不僅顯示上一次已經安裝的檔案已經安裝安裝完成,還顯示只有配置工具,反覆弄了好幾次還是不成功,今天起來又開始我的安裝歷程,我先決定把該解除安裝的解除...

SQL2005 索引設計

1 評估索引本身的占用空間,當索引相對於其資料本身過大可能會無明顯作用。這種情況體現在 表很小,索引列過多,索引碎片過多。當索引在select中不起作用時,你還必須在insert和update delete這些操作中去維護這些不起作用的資料。2 in語句不一定不能使用索引,where id in 1...