日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQL點(diǎn)滴之篩選數(shù)據(jù)列的信息

前面兩次點(diǎn)滴分享中,筆者與我們分享了SET QUOTED_IDENTIFIER 的作用,并給我們介紹了一個(gè)簡(jiǎn)單的字符串分割函數(shù)。這一次,筆者為我們介紹怎么從SQL Server中找出所有的數(shù)據(jù)列的類型,字段大小,是否可為空,是否是主鍵,約束等等信息。

項(xiàng)目需要將Access數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到SQL Server中,需要檢驗(yàn)導(dǎo)入后的數(shù)據(jù)完整性,數(shù)據(jù)值是否正確。我們使用的是Microsoft SQL Server 2008 Migration Assistant for Access這個(gè)工具,次工具專門用來將Access中的數(shù)據(jù)庫導(dǎo)出到SQL Server中,我們的疑慮是這個(gè)導(dǎo)出過程中會(huì)不會(huì)因?yàn)檎J(rèn)為的原因?qū)е聰?shù)據(jù)錯(cuò)誤或者數(shù)據(jù)之間的關(guān)聯(lián)丟失,看起來有點(diǎn)多次一舉,但是還是找方法來做測(cè)試。于是就產(chǎn)生了今天的問題,怎么從SQL Server中找出所有的數(shù)據(jù)列的類型,字段大小,是否可為空,是否是主鍵,約束等等信息。我找很多資料鼓搗出這個(gè)存儲(chǔ)過程,先來看看代碼:

 
 
 
 
  1. USE [MIS]  
  2. GO  
  3.  
  4. /****** Object:  StoredProcedure [dbo].[sp_SelectColumnInfor]    Script Date: 09/23/2010 19:00:28 ******/  
  5. SET ANSI_NULLS ON 
  6. GO  
  7.  
  8. SET QUOTED_IDENTIFIER ON 
  9. GO  
  10.  
  11. create procedure [dbo].[sp_SelectColumnInfor]  
  12. as 
  13. declare @table_name varchar(250)  
  14. --create a temp table  
  15. create table #tempTable(  
  16. TABLE_NAME nvarchar(128),  
  17. COLUMN_NAME nvarchar(128),  
  18. IS_NULLABLE varchar(3),  
  19. DATA_TYPE nvarchar(128),  
  20. CHARACTER_MAXIMUM_LENGTH int,  
  21. CONSTRAINT_NAME nvarchar(128),  
  22. )   
  23. --create a cursor  
  24. declare curTABLE cursor for 
  25. select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_TYPE='BASE TABLE' 
  26. for read only 
  27.  
  28. open curTABLE  
  29. fetch next from curTABLE into @table_name  
  30. while @@FETCH_STATUS =0  
  31. begin 
  32. insert into #tempTable  
  33. select sc.[TABLE_NAME],sc.[COLUMN_NAME],sc.[IS_NULLABLE],sc.[DATA_TYPE],sc.[CHARACTER_MAXIMUM_LENGTH]  
  34. ,scc.CONSTRAINT_NAME  
  35. from INFORMATION_SCHEMA.COLUMNS sc   
  36. left join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE scc on sc.COLUMN_NAME=scc.COLUMN_NAME and sc.TABLE_NAME=scc.TABLE_NAME  
  37. where sc.[TABLE_NAME]=@table_name --order by TABLE_NAME,COLUMN_NAME  
  38.  
  39. fetch next from curTABLE into @table_name  
  40. end 
  41. close curTABLE  
  42. deallocate curTABLE  
  43. select * from #tempTable order by TABLE_NAME,COLUMN_NAME  
  44. drop table #tempTable  
  45. GO 

 
其實(shí)很簡(jiǎn)單的,只要查查INFORMATION_SCHEMA.COLUMNS , INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE這兩個(gè)系統(tǒng)視圖的功能就能明白。來看看執(zhí)行這個(gè)存儲(chǔ)過程得到的結(jié)果:

 下次介紹Microsoft SQL Server 2008 Migration Assistant for Access這個(gè)工具的用法。

 原文鏈接:http://www.cnblogs.com/tylerdonet/archive/2010/09/23/1833381.html

【編輯推薦】

  1. SQL點(diǎn)滴之SET QUOTED_IDENTIFIER OFF語句的作用
  2. SQL點(diǎn)滴之一個(gè)簡(jiǎn)單的字符串分割函數(shù)
  3. 微博 請(qǐng)問你是怎么優(yōu)化數(shù)據(jù)庫的?
  4. MySQL數(shù)據(jù)庫的優(yōu)化(上)單機(jī)MySQL數(shù)據(jù)庫的優(yōu)化
  5. MySQL數(shù)據(jù)庫的優(yōu)化(下)MySQL數(shù)據(jù)庫的高可用架構(gòu)方案

新聞名稱:SQL點(diǎn)滴之篩選數(shù)據(jù)列的信息
網(wǎng)站地址:http://www.dlmjj.cn/article/dhogjce.html