存儲過程里定義不了數組。如果是sqlserver,那麼你可以用表變數,游標來實現你的功能。
如果是sqlserver2005以上的版本,可以做clr存儲過程,那裡面是可以用數組的。
❷ sqlserver索引超出了數組界限如何解決
怕不是用sql server 2008R2的查詢分析器打開高版本的sql server 資料庫吧。
你可以無視錯誤直接打SQL,只是部分功能如sql server 代理不能使用而已。
想解決就裝一下更高版本的查詢分析器吧。
❸ 如何給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
❹ SQLserver 怎麼聲明變數
點擊開始——所有程序——Microsoft SQL Server——企業管理器——(local)(Windows NT)——安全性——登錄——sa,彈出SQL Server登錄屬性—sa界面,輸入新的密碼,確定。
密碼無法看到,但是可以重新設置。
❺ SQLSERVER 變數賦值
set @login_id_csv = ('aa', 'bb', 'cc')
試試加上引號
set @login_id_csv = 『('aa', 'bb', 'cc') 』
還不行的話看看你是什麼資料庫 有的資料庫執行sql需要在後邊加分號
http://technet.microsoft.com/zh-cn/ms188927.aspx
還不行的話你可以參考這里 有講declare的用法
❻ 如何在SQL中聲明一個數組變數以及相關SQL語
集合:是具有相同定義的元素的聚合。Oracle有兩種類型的集合:
可變長數組(VARRAY):可以有任意數量的元素,但必須預先定義限制值。
嵌套表:視為表中之表,可以有任意數量的元素,不需要預先定義限制值。
在PL/SQL中是沒有數組(Array)概念的。但是如果程序員想用Array的話,就得變通一下,用TYPE 和Table of Record來代替多維數組,一樣挺好用的。
emp_type 就好象一個table 中的一條record 一樣,裡面有id, name,gender等。emp_type_array 象個table, 裡面含有一條條這樣的record (emp_type),就象多維數組一樣。
--單維數組
DECLARE
TYPE emp_ssn_array IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
best_employees emp_ssn_array;
worst_employees emp_ssn_array;
BEGIN
best_employees(1) := '123456';
best_employees(2) := '888888';
worst_employees(1) := '222222';
worst_employees(2) := '666666';
FOR i IN 1..best_employees.count LOOP
DBMS_OUTPUT.PUT_LINE('i='|| i || ', best_employees= ' ||best_employees(i)
|| ', worst_employees= ' ||worst_employees(i));
END LOOP;
END;
--多維數組
DECLARE
TYPE emp_type IS RECORD
( emp_id employee_table.emp_id%TYPE,
emp_name employee_table.emp_name%TYPE,
emp_gender employee_table.emp_gender%TYPE );
TYPE emp_type_array IS TABLE OF emp_type INDEX BY BINARY_INTEGER;
emp_rec_array emp_type_array;
emp_rec emp_type;
BEGIN
emp_rec.emp_id := 300000000;
emp_rec.emp_name := 'Barbara';
emp_rec.emp_gender := 'Female';
emp_rec_array(1) := emp_rec;
emp_rec.emp_id := 300000008;
emp_rec.emp_name := 'Rick';
emp_rec.emp_gender := 'Male';
emp_rec_array(2) := emp_rec;
FOR i IN 1..emp_rec_array.count LOOP
DBMS_OUTPUT.PUT_LINE('i='||i
||', emp_id ='||emp_rec_array(i).emp_id
||', emp_name ='||emp_rec_array(i).emp_name
||', emp_gender = '||emp_rec_array(i).emp_gender);
END LOOP;
END;
-------------- Result --------------
i=1, emp_id =300000000, emp_name =Barbara, emp_gender = Female
i=2, emp_id =300000008, emp_name =Rick, emp_gender = Male
❼ SQLserver資料庫中的變數是什麼意思是干什麼用的,詳細的講解一下!謝謝
資料庫中有變數嗎??你說的應該是Sql文吧?存儲過程或者單個屁處理程序命令等。
這些網上所有一下就能找到。
❽ 如何給SQLSERVER存儲過程傳遞數組參數
舉例說明:
CREATE PROCEDURE dbo.DoSomethingWithEmployees
@List AS dbo.EmployeeList READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT EmployeeID FROM @List;
END
GO
在C#中的寫法:
DataTable tvp = new DataTable();
using (conn)
{
SqlCommand cmd = new SqlCommand("dbo.DoSomethingWithEmployees", conn);
cmd.CommandType = CommandType.StoredProcere;
SqlParameter tvparam = cmd.Parameters.AddWithValue("@List", tvp);
tvparam.SqlDbType = SqlDbType.Structured;
// 執行存儲過程,並獲取結果
}
❾ 如何給SQLSERVER存儲過程傳遞數組參數
數組不能傳遞,變通的解決辦法是有的
思路如下:
1、將數組轉換為字元串格式(例如:a,b,c,d)
2、在資料庫內創建字元串分割為行的表值函數
3、若是需要將一個二維數組傳遞的話,需要將每列數據都格式化為1的方式,然後再用2的方式轉換為行,再將轉換後的數據組合為一個表
4、你就可以直接進行插入、編輯、刪除或查詢操作了。