語句帖出來

創(chuàng)新互聯(lián)建站是少有的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、營銷型企業(yè)網(wǎng)站、小程序制作、手機APP,開發(fā)、制作、設(shè)計、買友情鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,2013年開創(chuàng)至今,堅持透明化,價格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評
INSERT
INTO
tbl_SMSend@sms
(TryTimes,
SendTime,
SubTime,
SendType)
VALUES
('0',
to_date('2009-07-08','yyyy-mm-dd'),to_date('2009-07-08','yyyy-mm-dd'),
'1')
原因是因為,sqlserver與oracle中的函數(shù)不是全部通用,在oracle中插入日期型數(shù)據(jù),需要將字符型的日期用to_date進行轉(zhuǎn)換
這個好像不能實現(xiàn)吧。自動增長列不會重新改變的。 你可以使用row_number來將它排序,不知道這樣能否滿足你的需求。如果你非要使用標識列,我提供兩種方法可以做到,一:是將表整個表復(fù)制(除了標識列),重新加一個標識列。二:寫一個觸發(fā)器將后面的行移動上來但是兩種效果都不是很好。
大多數(shù)對象要求有標識符,但對有些對象(例如約束),標識符是可選的。
標識符就相當(dāng)于這個變量或常量的名字一樣了,數(shù)據(jù)庫對象的名稱即為其標識符。MicrosoftSQLServer中的所有內(nèi)容都可以有標識符,服務(wù)器,數(shù)據(jù)庫和數(shù)據(jù)庫對象(例如表,視圖,列,索引,觸發(fā)器,過程,約束及規(guī)則等)都可以有標識符,大多數(shù)對象要求有標識符,但對有些對象(例如約束),標識符是可選的。
select [SNAME],IDENTITY(int,1,1) as sid into #tmp from [sInfo]
就可以了,那個標識符列不用插的
幾個概念:
A、標識符:是數(shù)據(jù)庫對象的名稱。
數(shù)據(jù)庫對象的名稱被看成是該對象的標識符。Microsoft? SQL Server? 中的每一內(nèi)容都可帶有標識符。服務(wù)器、數(shù)據(jù)庫和數(shù)據(jù)庫對象(例如表、視圖、列、索引、觸發(fā)器、過程、約束、規(guī)則等)都有標識符。大多數(shù)對象要求帶有標識符,但對有些對象(如約束)標識符是可選項。
B、保留關(guān)鍵字:是sql語言的語法。屬于代碼的范疇。
保留關(guān)鍵字是用來定義、操作和訪問數(shù)據(jù)庫。保留關(guān)鍵字是 SQL Server 使用的 Transact-SQL 語言語法的一部分,用于分析和理解 Transact-SQL 語句和批處理。盡管在 Transact-SQL 腳本中,使用 SQL Server 保留關(guān)鍵字作為標識符和對象名在語法上是可行的,但規(guī)定只能使用分隔標識符。
C、字符串:數(shù)據(jù)類型的一種,數(shù)據(jù)類型有整數(shù)型、字符串型等。屬于數(shù)據(jù)的范疇。
每個列、局部變量、表達式和參數(shù)都有一個相關(guān)的數(shù)據(jù)類型。即屬于某種數(shù)據(jù)類型。
D、通配符、轉(zhuǎn)義符:這2個是跟字符串相關(guān)的概念。一般出現(xiàn)在字符串中。
比如 like ’dsd%‘ , dsd% 是字符串。%是通配符。這個語句的含義大家應(yīng)該都知道,^_^。
使用轉(zhuǎn)義符,可以把通配符改變成普通字符。2種方法:
1、[]是默認的轉(zhuǎn)義符,里面的通配符(里面只能是通配符),都當(dāng)做普通字符處理:
like ’dsd[%]‘,這時,%就是個普通字符了,查找條件就是要某個字段值完全等于 dsd% 。
2、用ESCAPE關(guān)鍵字定義轉(zhuǎn)義符,
like ’dsd/%‘ ESCAPE ’/' 效果同 like ’dsd[%]‘
還有一種轉(zhuǎn)義符情況:
大家知道,單引號一般可用來包含字符串,如果字符串中有單引號是普通字符,那么就同時有了2種意思的單引號,怎么區(qū)分呢?就要用2個單引號來轉(zhuǎn)義為普通字符,如 like ‘ds''d’ ,其實就是指字符串:ds'd
后面提到的QUOTENAME函數(shù),默認是用[]來做分隔符,如果字符串中有[],函數(shù)轉(zhuǎn)換后,字符串中的[]就要用兩個]]來轉(zhuǎn)義,表明這個[]是個普通字符,與字符串前后的分隔符 [] 相區(qū)別。
步入正題,
標識符,分為:
一、常規(guī)標識符:符合常規(guī)標識符規(guī)則的標識符。
常規(guī)標識符規(guī)則如下:(參考sqlserver的聯(lián)機幫助)
1、。。。。。
2、。。。。。
3、。。。。。
4、。。。。。
二、分隔標識符:包含在雙引號 " 或者方括號 [ ] 內(nèi)的標識符就是分隔標識符。
注意:雙引號 " 或者方括號 [ ] 是分隔符。
在 Transact-SQL 語句中,對不符合常規(guī)標識符規(guī)則的標識符必須用雙引號或方括號來分隔。符合標識符格式規(guī)則的標識符可以分隔,也可以不分隔。
1、當(dāng)QUOTED_IDENTIFIER 為 ON 時,默認是on的。 SQL Server 遵循 SQL-92 規(guī)則:
雙引號只能用于分隔標識符,不能用于分隔字符串。
為保持與現(xiàn)有應(yīng)用程序的兼容性,SQL Server 并不完全強制該規(guī)則。如果字符串沒有超過標識符的長度,則該字符串可包含在雙引號內(nèi)。但不建議這樣做。
單引號必須用來包含字符串,不能用于分隔標識符。
如果字符串包含單引號,則需要在單引號前再增加一個單引號:
SELECT * FROM "My Table"
WHERE "Last Name" = 'O''Brien'
注意:"Last Name",你可以寫成'Last Name'而不會報語法錯誤,是因為,sql認為是進行字符串的比較了,比如寫成'Last Name'='Last Name',比較結(jié)果為真,表中的全部記錄就被select出來了。而如果寫成:WHERE "Last Name" = "O''Brien",即等號右邊改成雙引號,則會把O''Brien當(dāng)成一個標識符(數(shù)據(jù)庫對象),即當(dāng)成一個字段名,運行時,會提示沒有O''Brien列。 2、當(dāng) QUOTED_IDENTIFIER 為 OFF 時,對于雙引號和單引號的使用,SQL Server 遵循如下規(guī)則:
引號不能用于分隔標識符,而是用括號作為分隔符。
單引號或雙引號可用于包含字符串。
如果使用雙引號,嵌入的單引號不需要用兩個單引號來表示:
SELECT * FROM [My Table]
WHERE [Last Name] = "O'Brien"
常規(guī)標識符和分隔標識符包含的字符數(shù)必須在 1 到 128 之間
另外:
將標識符用作參數(shù):(具體請參考聯(lián)機幫助)
許多系統(tǒng)存儲過程、函數(shù)和 DBCC 語句都把對象名當(dāng)作參數(shù)。其中一些參數(shù)接受多部分對象名,另一些則只接受單部分名稱。接受單部分對象名稱還是多部分對象名稱決定了 SQL Server 在內(nèi)部如何分析和使用參數(shù)。 。。。。。。。
另外:
QUOTENAME函數(shù):
msdn解釋:返回帶有分隔符的 Unicode 字符串,分隔符的加入可使輸入的字符串成為有效的 Microsoft? SQL Server? 分隔標識符。
以下示例接受字符串 abc[]def 并使用 [ 和 ] 字符來創(chuàng)建有效的 SQL Server 分隔標識符:
SELECT QUOTENAME('abc[]def')
下面是結(jié)果集:
[abc[]]def]
(1 row(s) affected)
注意,字符串"abc[]def"中的右括號有兩個,用于表示轉(zhuǎn)義符,轉(zhuǎn)換成普通字符,與分隔符 [] 相區(qū)別。
解釋:字符串 abc[]def 中的[]是當(dāng)做普通字符,所以用 ] ] 來表示 ] 是個普通字符,即表明中間的 [] 就是個普通字符。
如果是:SELECT QUOTENAME('abc[]def' , '()' ) ,不用[]來做分隔符,那么結(jié)果是:
(abc[]def) ,就不用兩個]] 來轉(zhuǎn)義了,因為新的字符串中只有一種意思的[],即普通字符。
這是個通用的規(guī)則,比如字符串中含有單引號 ' 為普通字符串時,比如 :ds'd ,
like 語句就要改成:like ‘ds‘’d’,而不是: like 'ds'd' 。即2個單引號表示轉(zhuǎn)義符,轉(zhuǎn)換成普通單引號字符 ' 。
網(wǎng)站名稱:sqlserver標識符,sql server標識符命名規(guī)則
文章出自:http://chinadenli.net/article17/dsgpegj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、全網(wǎng)營銷推廣、電子商務(wù)、App設(shè)計、品牌網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)