『壹』 sql語句里能用數組類型嗎
在SQL Server 2005、2008版中
數組是沒有,如果要一次插入多條數據是可以的
語法如下:
insert into 表名(欄位1,欄位,……,欄位n)
select 數值1,數值2,……,數值n union
select 數值1,數值2,……,數值n union
select 數值1,數值2,……,數值n union
select 數值1,數值2,……,數值n union
select 數值1,數值2,……,數值n
『貳』 sqlserver的數據類型
sqlserver的數據類型比較多,常用的包括:
第一大類:整數數據
bit:bit數據類型代表0,1或NULL,就是表示true,false.佔用1byte.
int:以4個位元組來存儲正負數.可存儲范圍為:-2^31至2^31-1.
smallint:以2個位元組來存儲正負數.存儲范圍為:-2^15至2^15-1
tinyint: 是最小的整數類型,僅用1位元組,范圍:0至此^8-1
第二大類:精確數值數據
numeric:表示的數字可以達到38位,存儲數據時所用的位元組數目會隨著使用權用位數的多少變化.
decimal:和numeric差不多
第三大類:近似浮點數值數據
float:用8個位元組來存儲數據.最多可為53位.范圍為:-1.79E+308至1.79E+308.
real:位數為24,用4個位元組,數字范圍:-3.04E+38至3.04E+38
第四大類:日期時間數據
datatime:表示時間范圍可以表示從1753/1/1至9999/12/31,時間可以表示到3.33/1000秒.使用8個位元組.
smalldatetime:表示時間范圍可以表示從1900/1/1至2079/12/31.使用4個位元組.
第五大類:字元串數據
char:長度是設定的,最短為1位元組,最長為8000個位元組.不足的長度會用空白補上.
varchar:長度也是設定的,最短為1位元組,最長為8000個位元組,尾部的空白會去掉.
text:長寬也是設定的,最長可以存放2G的數據.
第六大類:Unincode字元串數據
nchar:長度是設定的,最短為1位元組,最長為4000個位元組.不足的長度會用空白補上.儲存一個字元需要2個位元組.
nvarchar:長度是設定的,最短為1位元組,最長為4000個位元組.尾部的空白會去掉.儲存一個字元需要2個位元組.
ntext:長度是設定的,最短為1位元組,最長為2G.尾部的空白會去掉,儲存一個字元需要2個位元組.
第七大類:貨幣數據類型
money:記錄金額范圍為:-92233720368577.5808至92233720368577.5807.需要8 個位元組.
smallmoney:記錄金額范圍為:-214748.3648至214748.36487.需要4個位元組.
第八大類:標記數據
timestamp:該數據類型在每一個表中是唯一的!當表中的一個記錄更改時,該記錄的timestamp欄位會自動更新.
uniqueidentifier:用於識別資料庫裡面許多個表的唯一一個記錄.
第九大類:二進制碼字元串數據
binary:固定長度的二進制碼字元串欄位,最短為1,最長為8000.
varbinary:與binary差異為數據尾部是00時,varbinary會將其去掉
image:為可變長度的二進制碼字元串,最長2G.
『叄』 二、資料庫與數據表--2、SQLServer的數據類型
(1)文本類型: 字元數據包悉讓含任意字母、符號或數字字元的組合
char: 固定長度的非Unicode字元數據,最大長度為8000個字元
varchar: 可變長度的非Unicode數據,最大長度為8000個字元
text: 存儲長文本信息,最大長度為2^31-1(2147483647)個字元
nchar: 固定長度的Unicode數據,最大長度為4000個字元
narchar: 可變長度的Unicode數據,最大長度為4000個字元
ntext: 存儲長文本信息,最大長度為2^30-1(1073741823)個字元
(Unicode是國際組織制定的可以容納世界上所有文字和符號的字元編碼方案,編碼數據長度是非編碼數據的兩倍)
(2)整數類型
bigint: 佔用8個位元組,可表示範圍-2^63~2^63-1之間的整數
int: 佔用4個位元組
smallint: 佔用2個位元組
tinint: 佔用1個位元組,可表示0~255之間的整數
(3)精確數字類型
decimal: -10^38~10^38-1之間固定精度和小數位的數字
numeric(常用): 功能等同於旦飢decimal
寫法:
decimal(整數,小數)和numeric(整數,小數)——若不指定位數,默認18位整數,0位小數:
(4)近似數字(浮點)類型(很少用,可以用numeric替代)
float[(n)]: 表示範圍-1.79E+308~1.79E+308
n 表示精度,在1-53之間取值,當n在1~24之間時,精度為7位有效數字,佔用4個位元組;當n在25~53之間時,精度為15位有效數字,佔8個位元組。
real: 表示範圍-3.40E+38~3.40E+38佔用4個位元組,相當於float(24)
(5)日期類型
datetime: 允許范圍1753-1-1至9999-1-1
smalldatetime(常用): 允許范圍1900-1-1至2079-6-6
時間精度不同: datetime精確到3%秒;smalldatetime精確到1分鍾
格式說明:
分隔符數字方式: 2013-08-20 或 08/20/2013
純數字方式: 08202013
英文數字類型: Aug 20,2013
注意問題: 日期在使用的時候需要使用單引號' ' 括起來
(6)貨幣類型
money: 貨幣數值介於-2^63與2^63-1之間,精確到貨幣單位的千分之一
smallmoney: 貨幣數據介於-214748.3648與214748.3648之間,精確到貨幣單位的千分之十
(7)位類型
bit: 表示「是/否」類型的數據(1/0,true/false)
(8)二進制類型
binary: 固定長度的二進制數據,最大8000個位元組
vbinary: 可變長度的二進制數據,最大8000個位元組
image: 可變長度的模陸返二進制數據,最大長度2^31個位元組—— 應用場合: 可存儲圖片
『肆』 SQL server裡面的char和vchar有什麼區別,分別用在什麼地方
1. char是定長的字元數組, varchar是變長的字元數組.
2. char(10)表示字元數組的長度自始至終都是10個位元組, 表格一創建就分配給它10個位元組. varchar(10)表示字元數組最大長度是10個位元組, 實際使用時也可不達到10可位元組, 根據實際情況分配儲存空間.char,varchar均有個限制,定義 char(N)或varchar(N)時,應有N<=8000.
3. char類型主要用來存放定長字元串, 如 gender char(2) check(gender in('男','女')) default '男',相應地,varchar類型主要用來存放不定長字元串.
『伍』 sqlserver2008存儲過程的參數有數組類型嗎
您好,沒有數組類型的.所有的參數類型都是systypes表裡面的.
『陸』 C# byte數組對應SqlServer2000 中的哪種數據類型
sqlserver里可以用image類型存儲二進制的數據
圖片,音頻等等這些數據都可以先轉換成byte[],然後放到image類型里
『柒』 如何給SQLSERVER存儲過程傳遞數組參數
確切的說不行-SQL SERVER沒有數組類型,ANSI SQL 92標准也不支持數組。但可用其它的方法來實現。 1. You could simulate an array by passing one or more varchar(255) fields with comma-separated values and then use a WHILE loop with PATINDEX and SUBSTR to extract the values. 1、你可以使用幾個VARCHAR(255)欄位來模擬數組,欄位中用逗號分開各個數據,然後使用循環和PATINDEX和SUBSTR分開這些數據。 2. The more usual way to do this would be to populate a temporary table with the values you need and then use the contents of that table from within the stored-procere. Example of this below2、通常這種方法需要為這些數據創建一個臨時表,然後在存儲過程使用表中的內容。如下例create procere mytest @MyParmTempTable varchar(30)asbegin-- @MyParmTempTable contains my parameter list... 這個變數是包含參數的表名-- For simplicity use dynamic sql to into a normal temp table... create table #MyInternalList ( list_item varchar( 2 ) not null)set nocount oninsert #MyInternalList select * from sysobjects create table #MyList ( list_item varchar( 2 ) not null)insert #MyList values ( 'S' ) insert #MyList values ( 'U' ) insert #MyList values ( 'P' )exec mytest "#MyList"3. If all you wanted to do was use the array/list as input to an IN clause in a WHERE statement you could use :-3、如果你想在IN子句里使用輸入的數組參數可以這樣做:CREATE PROCEDURE sp_MyProcere (@MyCommaDelimitedString