日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server開發(fā)過程中的的常見問題總結(jié)

瀏覽:26日期:2023-11-06 08:59:51

在SQL Server開發(fā)問題中你可能會(huì)問到的十個(gè)問題:

1、什么是常見的對(duì)表和字段的名字約束?

2、有沒有可能在不了解T-SQL的情況下編寫存儲(chǔ)過程?

3、T-SQL 中如何比較CLR 存儲(chǔ)過程和函數(shù)的性能?

4、我如何在一個(gè)存儲(chǔ)過程中使用另一個(gè)存儲(chǔ)過程產(chǎn)生的結(jié)果?

5、我如何解決SQL Server 2005的并發(fā)問題?

6、在SQL Server 2005中用什么工具替代了查詢分析器?

7、你能提供一些有關(guān)SQL 和T-SQL的詳細(xì)信息嗎?

8、SQL Server 2005 有沒有新的索引類型?

9、我如何創(chuàng)建一個(gè)腳本在表中進(jìn)行選擇?

10、我如何列出那些沒有記錄的數(shù)據(jù)庫表?

對(duì)于表和字段的常見名字約束

回答:

SQL Server 2000下的表和字段名稱有1到128字節(jié)的限制,并且遵循用于標(biāo)識(shí)的規(guī)則。

第一個(gè)字母必須是如下的一種:

· Unicode Standard 2.0中規(guī)定的字母。

Unicode對(duì)字母的定義包括:拉丁字母,從A到Z,除了來自其他語言的字母之外。

· 下劃線(_),at符號(hào)(@),或者數(shù)字符號(hào)(#)

在SQL Server中以這些符號(hào)作為標(biāo)識(shí)符的開始具有特殊的含義。一個(gè)以at符號(hào)(@)開頭的標(biāo)識(shí)符表示一個(gè)本地的變量或者參數(shù)。一個(gè)以數(shù)字符號(hào)(#)開頭的標(biāo)識(shí)符代表一個(gè)臨時(shí)表或者過程。一個(gè)以兩個(gè)數(shù)字符號(hào)(##)開頭的標(biāo)識(shí)符標(biāo)識(shí)的是一個(gè)全局臨時(shí)對(duì)象。

一些Transact-SQL函數(shù)的名字以兩個(gè)at符號(hào)(@@)開頭。為了避免與這些函數(shù)混淆,推薦你不要使用兩個(gè)at符號(hào)(@@)開頭的標(biāo)識(shí)符。

接下來的字母可以是以下的任意幾種:

· Unicode Standard 2.0定義的字母

· 來自基礎(chǔ)拉丁文或者其他語音的十進(jìn)制數(shù)字

· at符號(hào)(@),美元符號(hào)($),數(shù)字符號(hào)(#),或者下劃線

標(biāo)識(shí)符絕對(duì)不能是Transact-SQL的保留字。SQL Server保留了一些大寫和小寫的保留字。內(nèi)建的空間或者特殊的字母都不允許出現(xiàn),盡管你可以在好的老版本的Northwind中看到它們包含了內(nèi)建的空間。你必須通過把它們括在括號(hào)中才可以訪問。

不具有任何T-SQL知識(shí)的情況下編寫SQL Server2005存儲(chǔ)過程嗎?

許多程序員都認(rèn)為創(chuàng)建SQL Server存儲(chǔ)過程不再必需T-SQL了。不幸的是(或者并非如此,這根據(jù)你的觀點(diǎn)),這并不全是事實(shí)。在技術(shù)上是可以在不了解T-SQL的情況下創(chuàng)建存儲(chǔ)過程的,但是沒有T-SQL的話則無法訪問任何的數(shù)據(jù)。

在CLR存儲(chǔ)過程內(nèi)部進(jìn)行數(shù)據(jù)訪問,是通過使用標(biāo)準(zhǔn)的ADO.NET類來完成的。開發(fā)人員會(huì)在應(yīng)用程序?qū)影l(fā)現(xiàn)很多同樣的沒有用處的數(shù)據(jù)訪問代碼,這些代碼會(huì)很輕易地轉(zhuǎn)移到SQLCLR例程中去。當(dāng)中間層的這些ADO.NET類需要使用T-SQL來訪問數(shù)據(jù)的時(shí)候,在 CLR主機(jī)提供的環(huán)境中就會(huì)使用同樣的類。

我要強(qiáng)調(diào)的是,從技術(shù)角度來說,不使用T-SQL來編寫存儲(chǔ)過程是可能的。那么有沒有理由這么做呢?一種情況就是這是一個(gè)用來從普通文件或者網(wǎng)絡(luò)服務(wù)中檢索數(shù)據(jù)的CLR存儲(chǔ)過程,并將數(shù)據(jù)格式設(shè)置為行集。這里可能就會(huì)用到不需要T-SQL的操作——但是這并不是對(duì)T -SQL存儲(chǔ)過程能力的一個(gè)很好的比喻。

CLR存儲(chǔ)過程vs. T-SQL存儲(chǔ)過程

CLR存儲(chǔ)過程和函數(shù)與T-SQL存儲(chǔ)過程和函數(shù)相比,性能如何?

回答:

這里是用來比較T-SQL例程和CLR例程性能的一種常用的規(guī)則:用你的數(shù)據(jù),在你的服務(wù)器上,測(cè)試兩套配置,看看哪一個(gè)比較好。

就是說,許多人都運(yùn)行過性能測(cè)試,一般的結(jié)果就是T-SQL在標(biāo)準(zhǔn)的CRUD(創(chuàng)建、讀取、更新、刪除)操作上表現(xiàn)要比好一點(diǎn),而在復(fù)雜數(shù)學(xué)、字符串賦值和其他的超過數(shù)據(jù)訪問的任務(wù)上,則是CLR的性能表現(xiàn)更好一點(diǎn)。

SQL Server 的專家Gustavo Larriera編輯了如下一些關(guān)于這個(gè)主題的有用鏈接:

·在 SQL Server 2005中使用CLR Integration。

·簡單介紹在 SQL Server 2005中的 CLR Integration。

·在 SQL Server 2005中對(duì)CLR 和T-SQL做出選擇。

·介紹 SQL Server 2005中的 CLR Integration。

·SQL Server 閑談: SQL Server 2005 Beta 2 CLR問題與回答。

·數(shù)據(jù)庫管理員的防御.NET。

·用戶自定義函數(shù)的性能比較。

如何在一個(gè)存儲(chǔ)過程中使用另一個(gè)存儲(chǔ)過程的結(jié)果?

專家回答:

只要存儲(chǔ)過程只產(chǎn)生了一個(gè)單個(gè)的結(jié)果,要在另外一個(gè)存儲(chǔ)過程中使用這個(gè)存儲(chǔ)過程產(chǎn)生的輸出,這個(gè)技術(shù)是非常直接的。這個(gè)技術(shù)就是使用一個(gè)臨時(shí)表來裝載存儲(chǔ)過程的巨額iguo,然后通過INSERT EXEC語句來執(zhí)行這個(gè)過程并保存結(jié)果。一旦結(jié)果保留在臨時(shí)表中了,他們就可以像使用其它表數(shù)據(jù)一樣來使用它了。

這里是我們可能會(huì)復(fù)用的一個(gè)過程例子:

CREATE PROC usp_Demo_AllAuthors as

select * from pubs..authors

GO

現(xiàn)在有一個(gè)存儲(chǔ)過程使用usp_Demo_AllAuthors的結(jié)果:

CREATE proc usp_Demo_SPUser as CREATE TABLE #Authors (

au_id varchar(11) NOT NULL PRIMARY KEY CLUSTERED,

au_lname varchar (40) NOT NULL ,

au_fname varchar (20) NOT NULL ,

phone char (12) NOT NULL,

address varchar (40) NULL ,

city varchar (20) NULL ,

state char (2) NULL ,

zip char (5) NULL ,

contract bit NOT NULL

)– Execute usp_Demo_AllAuthors storing the

– results in #Authors

insert into #Authors

exec usp_Demo_AllAuthors– Here we use the #Authors table. This example only

– only selects from the temp table but you could do much

– more such as use a cursor on the table or join with

– other data.

SELECT au_fName + ‘ ‘ + au_lname as [name]

, address+’, ‘+city+’, ‘+state+’ ‘+zip [Addr]

from #AuthorsDROP TABLE #Authors

GO

SQL Server 2005中的存儲(chǔ)過程并發(fā)問題

我在SQL Server2005中遇到了并發(fā)問題。我持有車票的公共汽車上有一些空閑的座位。我在插入銷售的查票之前,需要查看是否還有空閑的座位。我的存儲(chǔ)過程做的事情如下所示:

CREATE PROCEDURE add_ticket — parameters

DECLARE free_seats int BEGIN TRANSACTION SELECT free_seats

= COUNT(*) FROM tickets WHERE seat_is_not_taken IF free_seats

<> 0 INSERT INTO tickets VALUES(…) — some other statements END TRANSACTION

問題就是兩個(gè)過程可以同時(shí)讀取空閑票數(shù),并且都可以預(yù)約一張票,即使是那里已經(jīng)沒有空余的了。我需要一種方法來防止一個(gè)過程在另一個(gè)過程運(yùn)行add_ticket程序,但是還沒有插入一張新票的時(shí)候讀取空票的數(shù)量。

回答:

你是正確的;更高的隔離級(jí)別也不會(huì)保證多個(gè)讀者去同時(shí)去讀取同一個(gè)數(shù)據(jù)行。然而,還有幾種方法你可以完成這項(xiàng)工作。例如,你可以給每個(gè)座位分配一個(gè)惟一的標(biāo)識(shí)符(意思是,惟一鍵——不一定是GUID),并且創(chuàng)建一個(gè)描述哪些座位已經(jīng)被預(yù)訂了的表。在表上放一個(gè) UNIQUE約束,你就可以確保同一個(gè)座位不會(huì)被插入兩次了。

就是說,我認(rèn)為一個(gè)更有趣的方法就是使用SQL Service Broker。你可以為每個(gè)公交建立一個(gè)會(huì)話,并且將這個(gè)會(huì)話的句柄存放在一個(gè)表中,讀者在執(zhí)行RECEIVE之前可以參考這個(gè)表。通過這種方式,讀者就可以正確地過濾。公共汽車上的每個(gè)座位都插一個(gè)消息到隊(duì)列中。讀者就可以簡單地RECEIVE到所需的消息(在這個(gè)過程中,預(yù)定公共汽車上的座位)。 Service Broker會(huì)確保沒有消息會(huì)被接受兩次,也就是說你不會(huì)再遇到并發(fā)問題了。

SQL Server 2005中取代了查詢分析器

回答:

你是對(duì)的。查詢分析器和企業(yè)管理器都從SQL Server中刪除了。取代它們的是一個(gè)工具,SQL Server 管理套件(SQL Server Management Studio)。這個(gè)工具具有前任的大多數(shù)特性,但是擁有升級(jí)后的用戶界面和很多經(jīng)過改善的功能。我覺得大多數(shù)的數(shù)據(jù)庫管理員都會(huì)發(fā)現(xiàn)這是一個(gè)很好的升級(jí)。

如果你想要了解更多有關(guān)SQL Server管理套件的新特性的信息,請(qǐng)閱讀SearchSQLServer.com 上有關(guān)這個(gè)話題的文章。

SQL vs. T-SQL

回答:

SQL是結(jié)構(gòu)化查詢語言,是ANSI/ISO 認(rèn)可的標(biāo)準(zhǔn)數(shù)據(jù)庫語言。SQL Server的實(shí)現(xiàn)語言叫做Transact-SQL (T-SQL)。T-SQL基本上是根據(jù)1992年發(fā)表的ISO標(biāo)準(zhǔn)出現(xiàn)的,在1999年的標(biāo)準(zhǔn)上稍加修改。此外,微軟還進(jìn)行了各種私有的加強(qiáng)。

標(biāo)準(zhǔn)SQL和T-SQL之間有很多區(qū)別——太多了,這里就不說了。還有,如果你在SQL Server上工作,那么使用這些私有的擴(kuò)展是有好處的。由于許多SQL Server的特性的本質(zhì),你不使用非標(biāo)準(zhǔn)的命令的話,將會(huì)有很多強(qiáng)大的功能無法實(shí)現(xiàn)。如果你想要看看你的SQL是否符合標(biāo)準(zhǔn),你可以使用SET FIPS_FLAGGER命令。

SQL Server 2005中是否有新的索引類別了?

回答:

SQL Server 2005沒有為關(guān)系表引入新的索引類型。基本上——聚簇和非聚簇索引是以B-trees的方式實(shí)現(xiàn)的——還仍然在應(yīng)用。然而,SQL Server 2005確實(shí)包含了一些索引上的加強(qiáng),不論是完全文本索引,還是對(duì)于XML數(shù)據(jù),此外這些加強(qiáng)還可以改善一些與關(guān)系型索引有關(guān)的問題。

SQL Server 2005的完全文本索引特性是全新的,并且是重新編寫的。要獲得這個(gè)特性的信息,請(qǐng)閱讀Nimish Khanolkar的MSDN廣播文檔,介紹SQL Server 2005中的全文本查找。

XML是SQL Server 2005中另外一個(gè)在方式上發(fā)生了巨大轉(zhuǎn)變的內(nèi)容。現(xiàn)在對(duì)于開發(fā)人員來說有第一流的XML數(shù)據(jù)類型可用了。這個(gè)類型支持XQuery查詢語言,使用了這個(gè)類型的字段可以通過特殊格式的XML索引被索引到。要了解更多有關(guān)XML類型的信息,請(qǐng)查找MSDN 上的文章。

還有各種各樣的有關(guān)T-SQL索引命令的加強(qiáng)。也許最令人感興趣的就是新的“在線”索引類型,它允許數(shù)據(jù)庫管理員在不需要把用戶鎖到表外面的情況下執(zhí)行索引維護(hù)任務(wù)。這個(gè)很有可能標(biāo)記著數(shù)據(jù)庫管理員需要等到夜里3點(diǎn)才能打開維護(hù)窗口修正問題的狀況的終結(jié)!要了解更多有關(guān)這個(gè)特性的信息,請(qǐng)查找SQL Server Worldwide Users Group 上的文章。

為行選擇創(chuàng)建一個(gè)腳本

想象一下這個(gè)表:

prod_key item_key pack_key last_sale

LM001 1029 AD100 2004/12/05

LM870 1029 AD100 2005/09/20

PE789 1030 BC400 2003/07/12

PE312 1030 BC400 2004/08/07

我想要選出哪些在item_key 和pack_key相等的情況下,日期比較大的那一行。換句話說,我想要:

LM870 1029 AD100 2005/09/20

PE312 1030 BC400 2004/08/07

回答:

這個(gè)表有主鍵嗎?那樣的話查詢可能會(huì)容易些。不管怎么樣,我覺得你應(yīng)該按照下面這樣:

SELECT prod_key,item_key,pack_key,last_sale

FROM (SELECT item_key,pack_key,MAX(last_sale)

AS last_sale FROM tablex GROUP BY item_key,pack_key) AS MaxDateTable

WHERE tablex.item_key = MaxDateTable.item_key

AND tablex.pack_key = MaxDateTable.pack_key

AND tablex.last_sale = MaxDateTable.last_sale

列出沒有記錄的數(shù)據(jù)庫表

我創(chuàng)建了一個(gè)動(dòng)態(tài)的SQL Server查詢來輸出表中行的數(shù)量。我的目標(biāo)是列出在數(shù)據(jù)庫中沒有記錄的表。查詢?nèi)缦滤?

declare @strsql varchar(100)

declare @tablename varchar(50)

@tablename=’table123′@strsql=’

select count(*) from ‘ + @tablename exec(@strsql)

我得到了輸出,但是我無法把這個(gè)值存儲(chǔ)到變量中以備查看。

B<>我想要這樣查看:

/* @countvariable=0

print(@tablename)*/

還有其它的解決方法嗎?

回答:

你可以讓你的解決方案更加靈活一些,通過從sysobjects表中抓取表名:

declare @strsql varchar(256)

create table #emptytables

(tablename varchar(128), table_rowcount int)select

@strsql=’select distinct o.name as TableName,

.rowcnt as Table_RowCount

from sysobjects o

inner join sysindexes x

on o.id = x.id

where x.rowcnt = 0 and

o.type = ‘’U”’insert #emptytables (TableName,

Table_rowcount) exec (@strsql)

select * from #emptytables

drop table #emptytables

標(biāo)簽: Sql Server 數(shù)據(jù)庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久国产生活片100| 国产在线不卡| 91精品91| 香蕉久久99| 色爱av综合网| 久久久9色精品国产一区二区三区| 九九99久久精品在免费线bt| 精品成av人一区二区三区| 国产精品第一国产精品| 久久福利影视| 91精品观看| 日韩一区欧美二区| 日韩手机在线| 亚洲香蕉久久| 国产精品一区三区在线观看| 日韩精品免费视频一区二区三区| 视频一区在线视频| 日韩极品在线观看| 亚洲婷婷丁香| 日韩久久一区| 欧美一级二级视频| 国产精品v亚洲精品v日韩精品| 国产精品22p| 欧美99久久| 香蕉久久夜色精品国产| 免费久久精品视频| 国产精品sm| 久久精品国产久精国产| 欧美好骚综合网| 欧美在线亚洲| 日韩二区三区在线观看| 国产日韩一区二区三免费高清| 成人国产精品久久| 午夜久久免费观看| 久久av免费| 国产精品视区| 精品国产午夜肉伦伦影院| 欧美1区免费| 精品资源在线| 亚洲精品综合| 国产精品精品国产一区二区| 免费的成人av| 九九久久电影| 日韩毛片视频| 国产一级成人av| 视频在线观看一区| 免费高潮视频95在线观看网站| 日本一区二区中文字幕| 欧美日韩国产一区精品一区| 精品国产欧美| 国产免费久久| 欧美日韩亚洲一区| 日韩国产欧美在线播放| 国产免费成人| 久久久久久美女精品| 久久久久观看| 国产精品白丝av嫩草影院| 日本国产欧美| 91精品国产一区二区在线观看| 欧美专区一区二区三区| 亚洲制服少妇| 亚洲久久一区| 国产精品一线天粉嫩av| 久久99精品久久久久久园产越南| 国产日韩一区二区三免费高清| 日韩精品午夜视频| 日韩 欧美一区二区三区| 人人爽香蕉精品| 日韩在线观看中文字幕| 丝袜美腿亚洲一区| 美国三级日本三级久久99| 三级一区在线视频先锋| 亚洲欧美日本视频在线观看| 亚洲最新av| 久久激五月天综合精品| 久久精品国产99| 三级在线看中文字幕完整版| 青青久久av| 国产一级一区二区| 亚洲欧洲国产精品一区| 国产精品探花在线观看| 高清久久精品| 亚洲国产一区二区三区在线播放| 亚洲免费精品| 中文不卡在线| 国产日韩欧美一区| 中文字幕系列一区| 一区二区国产精品| 欧美国产先锋| 欧美日韩精品一本二本三本| 日韩在线麻豆| 成人午夜在线| 欧美日韩高清| 国产精品v亚洲精品v日韩精品| 国产一区二区三区成人欧美日韩在线观看 | 国产精品igao视频网网址不卡日韩 | 国产亚洲一区在线| 欧美国产日本| 午夜精品亚洲| 国产精品主播| 蜜臀久久99精品久久久画质超高清| 欧美日韩夜夜| 亚洲免费激情| 国产精东传媒成人av电影| 久久国产电影| 国产精品亚洲欧美一级在线| 欧美午夜不卡| 98精品久久久久久久| 中文无码日韩欧| 日韩成人a**站| 日韩综合一区二区三区| 欧美亚洲国产精品久久| 日产欧产美韩系列久久99| 日韩国产专区| 国产精品伦一区二区| 国产伊人精品| 风间由美中文字幕在线看视频国产欧美| 中文字幕亚洲精品乱码| 亚洲婷婷免费| 久久久免费人体| 日韩毛片网站| 视频一区视频二区中文字幕| 日本久久成人网| 日韩av免费大片| 日韩精品午夜视频| 视频精品一区二区| 伊人久久亚洲热| 99成人超碰| 高清不卡一区| 毛片在线网站| 黄色aa久久| 超级白嫩亚洲国产第一| 高清久久一区| 国产成人77亚洲精品www| 国产精品二区不卡| 日韩av在线中文字幕| 欧美日韩免费看片| 日韩三区免费| 伊人久久大香线蕉av不卡| 精精国产xxxx视频在线野外| 久久影院一区二区三区| 国产精品**亚洲精品| 国产精品久久久久久久久久白浆 | 久久久夜夜夜| 激情视频一区二区三区| 久久天堂成人| 六月丁香综合| 久久精品av| 香蕉精品999视频一区二区| 视频在线观看91| 国产精品一卡| 久久天堂av| 日韩精品一二三| 久久爱www.| 国产一区清纯| 国产日韩欧美在线播放不卡| 麻豆视频久久| 91精品国产调教在线观看| 亚洲在线观看| 国产精品麻豆成人av电影艾秋 | 久久五月天小说| 视频一区在线播放| 国产精品中文| 国产精品社区| 你懂的网址国产 欧美| 日韩三区在线| 日韩精品亚洲aⅴ在线影院| 精品91福利视频| 九色精品91| 国产乱人伦精品一区| 伊人精品在线| 国产精品久久久久久妇女| 欧美性感美女一区二区 | 97人人精品| 亚洲欧美日本视频在线观看| 久久久久九九精品影院| 欧美综合二区| 亚洲成人三区| 91午夜精品| 高清一区二区| 亚洲成人av观看| 四虎8848精品成人免费网站| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 久久久91麻豆精品国产一区| 亚洲aⅴ网站| 最新国产精品视频| 久热精品在线| 三级一区在线视频先锋| 亚洲毛片视频| 国产乱码精品一区二区三区四区| 国产日韩欧美| 伊伊综合在线| 99国内精品| 日韩中出av| 国产情侣一区| 日韩国产欧美三级| 国产精品久久久亚洲一区| 国产精品视频3p| 老司机精品在线| 欧洲一级精品|