當前位置:首頁 » 編程語言 » sqlserver調試函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver調試函數

發布時間: 2022-05-31 06:32:09

1. sqlserver存儲過程怎麼調試

SQL Server存儲過程相信大家都接觸過,下面就教您如何實現SQL Server存儲過程的單步調試,希望可以讓您對SQL Server存儲過程有更深的認識。
1)調試
在SQL Server的SQL Query Analyzer(查詢分析器)中,打開Object Brower(F8),在左邊的列表中選擇一資料庫,展開Stored Proceres,然後選擇要調試的存儲過程(或任意一個存儲過程),按右鍵,點擊「Debug」,則彈出Debug Procere對話框,顯示該存儲過程的參數(可在Proceres列表中選擇其他要調試的存儲過程),為參數輸入初始值,點擊「Execute」按鈕,進入Debug窗口;可使用上面一排按鈕或其對應的快捷鍵對該存儲過程進行「執行」「設斷點」「取消斷點」「單步跟蹤」等操作;窗口下方是參數列表,第一個是自定義參數變數列表,在Debug的過程中顯示全局變數和局部變數的值的變化,可對參數列表中該存儲過程的參數初值進行修改,再重新調試;第二個列表是系統變數,可自行增加,如添加「@@Error」「@@RowCount」,觀看其值的變化,其值不能手工修改。第三個列表是CallStack,暫時不知道怎麼用。在參數列表中,不能直接把User_Name()、GetDate()等函數直接放到參數列表中跟蹤,要把它們賦值予自定義變數進行查看。
大家可連接Pivot的SQL Server進行嘗試,使用本機DB系統如果不行,則需要用Administrator登錄本機,然後在企業管理器中,在本機的SQL Server Registration上點擊右鍵,點「屬性」,選擇「Security」,選擇「This account」,輸入Administrator和密碼,確定之。
2)SQL Server存儲過程單步調試
具體步驟如下:
1、將伺服器【身份驗證】屬性設置成【混合模式】(window與sql身份驗證)
2、在【控制面板】中打開【服務】將【MSSQLSERVER】服務打開【屬性】,選擇【登錄】頁面,將登錄身份設置成伺服器本地帳號和該帳號密碼,如administrator,密碼123;
3、重新啟動sqlserver服務,此時的服務指的是【SQL服務管理器】中的SQL SERVER服務;
假設【帳號】設置為administrator
此時達到的效果是:伺服器本地帳號administrator與客戶端上的administrator(並且該帳號的密碼要與伺服器密碼相同)可以通過【查詢分析器】進行調試;
如果想讓【其他帳號】也能夠調試,那麼還需要如下設置:
1、在【伺服器】上運行dcomcnfg.exe;
2、在【默認安全機制】中【默認訪問許可權】右邊點擊【編輯默認值】選擇允許調試的帳號類型,如users用戶類型,sample帳號有包含users組;
3、重新啟動sqlserver服務;
3、在客戶端上創建與服務帳號密碼一樣的用戶,如sample;
做到這步就可以通過查詢分析器的調試功能進行單步調試了

2. sql server的表函數怎麼調試

你好,
1.首先,sql裡面的函數是非常多的常用的有日期函數,字元函數等不知道你所說的是哪一種函數的調用。 2.就函數調用而言,是有很多的調用方法的,幾乎每個函數的調用方法和調用的意義都是不相同的。
3.舉例:比如 getdate() 這是一個函數,可以得到當年當月當日的系統時間精確到秒,如果你想查詢系統當前時間可一直在sql查詢編輯器中輸入: select getdate() 就可以了。
4.就sql函數的調用而言,可以在存儲過程中調用也可以在 T-SQL中調用。
希望對你有所幫助!

3. sqlserver存儲過程如何調用自定義函數

返回單個值的函數, 可以當變數用, 比如 select dbo.函數名(參數1, 參數2, ...) from ...where abc = dbo.函數名(參數1, 參數2...)

返回表的函數, 可以當數據表來使用, 比如 select * from dbo.函數名(參數1, 參數2, ...)

4. sqlserver如何調試麻煩寫下全部詳細過程!

注意調試必須在本機進行,連接時用 . 也就是本地內存模式連,而不是tcp ip ,
你要開發代碼的話,
你寫程序代碼的話,用帶的那個sql press 最好,好調試人的代碼。

你調試資料庫的存儲過程,在sqlserver 的管理工具中最好是。

5. C#怎麼調用sqlserver的自定義函數

sql server 自定義函數的使用
自定義函數

用戶定義自定義函數像內置函數一樣返回標量值,也可以將結果集用表格變數返回
用戶自定義函數的類型:
標量函數:返回一個標量值
表格值函數{內聯表格值函數、多表格值函數}:返回行集(即返回多個值)

1、標量函數
Create function 函數名(參數)
Returns 返回值數據類型
[with {Encryption | Schemabinding }]
[as]
begin
SQL語句(必須有return 變數或值)

End

Schemabinding :將函數綁定到它引用的對象上(註:函數一旦綁定,則不能刪除、修改,除非刪除綁定)


Create function AvgResult(@scode varchar(10))
Returns real
As
Begin
Declare @avg real
Declare @code varchar(11)
Set @code=@scode + 『%』
Select @avg=avg(result) from LearnResult_jiali
Where scode like @code
Return @avg
End

執行用戶自定義函數
select 用戶名。函數名 as 欄位別名
select dbo.AvgResult(『s0002』) as result

用戶自定義函數返回值可放到局部變數中,用set ,select,exec賦值
declare @avg1 real ,@avg2 real ,@avg3 real
select @avg1= dbo.AvgResult(『s0002』)
set @avg2= dbo.AvgResult(『s0002』)
exec @avg3= dbo.AvgResult 『s0002』
select @avg1 as avg1 ,@avg2 as avg2 ,@avg3 as avg3

函數引用

create function code(@scode varchar(10))
returns varchar(10)
as
begin
declare @ccode varchar(10)
set @scode = @scode + 『%』
select @ccode=ccode from cmessage
where ccode like @scode
return @ccode
end

select name from class where ccode = dbo.code(『c001』)

2、表格值函數
a、 內聯表格值函數
格式:
create function 函數名(參數)
returns table
[with {Encryption | Schemabinding }]
as
return(一條SQL語句)

create function tabcmess(@code varchar(10))
returns table
as
return(select ccode,scode from cmessage where ccode like @ccode)

b、 多句表格值函數
create function 函數名(參數)
returns 表格變數名table (表格變數定義)
[with {Encryption | Schemabinding }]
as
begin
SQL語句
end

多句表格值函數包含多條SQL語句,至少有一條在表格變數中填上數據值
表格變數格式
returns @變數名 table (column 定義| 約束定義 [,…])
對表格變數中的行可執行select,insert,update,delete , 但select into 和 insert 語句的結果集是從存儲過程插入。

Create function tabcmessalot (@code varchar(10))
Returns @ctable table(code varchar(10) null,cname varchar(100) null)
As
Begin
Insert @ctable
Select ccode,explain from cmessage
Where scode like @code
return
End

Select * from tabcmessalot(『s0003』)

來自:http://hi..com/datachina/blog/item/801def0366c4e7ea09fa9344.htmlC#調用SQL自定義函數返回值

代碼
1 --SQL自定義函數:
2
3 CREATE FUNCTION [GetProjectID] (@headStr nvarchar(10),@date datetime)
4 )
5
6 RETURNS NVARCHAR(200)
7
8 AS
9
10 BEGIN
11
12 --不能在自定義函數中用INSERT INTO
13
14 --insert into emos_cust(cust_name,dates)values(
15
16 --@headStr,@date
17
18 --)
19
20 return 'TEST BY HANSHU'
21 END
代碼
1 /// <summary>
2 /// 獲取項目文件編號 塗聚文
3 /// </summary>
4 private void FileNo()
5 {
6
7 SqlConnection conn = new SqlConnection(connectionString);
8 string strSql = "GetProjectID"; //自定SQL函數
9 SqlCommand cmd = new SqlCommand(strSql, conn);
10 cmd.CommandType = CommandType.StoredProcere;
11 cmd.Parameters.Add("@headStr", SqlDbType.NVarChar).Value = "ZQ3"; //輸入參數
12 cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = System.DateTime.Now.ToShortDateString(); //輸入參數
13 cmd.Parameters.Add("@returnString", SqlDbType.NVarChar);
14 cmd.Parameters["@returnString"].Direction = ParameterDirection.ReturnValue; //返回參數
15 try
16 {
17 conn.Open();
18 object o= cmd.ExecuteScalar();
19
20 this.txtAFileNO.Text = cmd.Parameters["@returnString"].Value.ToString();
21
22 //Response.Write("");
23
24 }
25 catch (Exception ex)
26 {
27
28 this.txtAFileNO.Text = ex.Message;
29
30 }
31 finally
32 {
33
34 if (!(conn.State == ConnectionState.Closed))
35 {
36
37 conn.Close();
38
39
40 }
41
42 }
43
44
45 }

6. 如何在SQL Server 2008下輕松調試T-SQL語句和存儲過程

今天突然有同事問起,如何在sqlserver中調試存儲過程(我們公司使用的是sqlserver 2008 R2),猛地一看,和以前使用sqlserver 2000真的有很大的不同,我真暈了。
於是琢磨了一下。SQLSERVER 2005中不知因何去掉了很重要的DEBUGGER功能,要調試,必須要安裝VS2005專業版或者更高版本。非常不方便。
還好,SQLSERVER 2008中這個很重要而且方便的功能又回來了。
不過,SQLSERVER 2008的調試功能和SQL2000的方法差別很大。SQL2000是在查詢分析器中的對象瀏覽器中選中需要調試的存儲過程,右鍵----調試---輸入參數開始調試。
sqlserver2008中則完全不同,變成了必須要在SSMS中EXEC [PROCEDURE NAME] @VAR1,@VAR2,然後點綠色三角或者點菜單中的調試---啟動調試。然後點工具欄的最右邊的單步調試或者跳出等。下面的變數窗口和堆棧窗口等可以查看調試中變數等動態變化值。
sqlserver2008調試的要求和條件:如果在引擎所在的電腦或伺服器上調試,則只需要SA或者WINDOWS用戶登陸即可。如果是異地調試,則需要設置防火牆例外,增加SSMS和SQLSERVER.EXE為允許,增加135埠允許通過。
總之,SQL2008的調試比2000操作起來麻煩多了,要求也多了。剛開始感覺不如2000的好用,也可能是使用2000習慣了。習慣是可怕的,但是微軟是在不斷進步的...

7. SqlServer常用函數

1、CONVERT()
函數
?
1
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length)
規定目標數據類型(帶有可選的長度)。data_to_be_converted
含有需要轉換的值。style
規定日期/時間的輸出格式。
可以使用的
style
值:點擊打開鏈接
2、DATEADD()
函數
點擊打開鏈接
3、CAST()
函數
?
1
2
Syntax
for
CAST:
CAST
(
expression
AS
data_type
[
(
length
)
]
)
expression
任何有效的表達式。
data_type
目標數據類型。
這包括
xml、bigint

sql_variant。
不能使用別名數據類型。
length
指定目標數據類型長度的可選整數。
默認值為
30。
CONVERT()
函數與CAST()
函數詳細信息:點擊打開鏈接

8. sqlserver 函數的寫法

returns @RowSet table(
ID int identity(1,1) ,
score float,
lastScore float
)
你這里已經聲明了一個表格類型變數作為函數的返回值.
那麼只要在函數里對這個表進行賦值,就可以直接return

insert into @RowSet values(...)
return
--------
declare @ScoreList table (YScore float)
declare @ScoreList1 table (lastScore float)
-------------------------------------------

怎麼我看你又聲明了兩個表格類型的變數?你函數聲明裡的返回類型是表,那麼單行返回的話就只能往裡裝簡單類型的值.
如果你要union拼接兩個table一起返回的話,兩個內部table和聲明的返回table定義又不一致.
很奇怪的寫法...能看出來你想干什麼...但這種寫法很怪異.
========================================補充
insert into @ScoreList SELECT...
insert into @ScoreList1 SELECT ...
你這不是把兩個查詢的結果賦給兩個內部變數了么,且這個表與你聲明的返回表都是一個float列.
你完全可以再把這兩個變數表insert 到@RowSet啊,或者不用這倆變數表,直接在兩個查詢里向@RowSet寫入值.
最後直接
return
end
不就行了?
======
http://hi..com/kas68310/blog/item/af4e05f0d5ee18c50a46e012.html
這有個返回值為talble的函數,你參看一下吧.你這個函數的完成度已經相當高了.

9. sqlserver里有沒有類似indexOf功能的函數

SQL CHARINDEX函數返回字元或者字元串在另一個字元串中的起始位置。CHARINDEX函數調用方法如下:

CHARINDEX ( expression1 , expression2 [ , start_location ] )

Expression1是要到expression2中尋找的字元中,start_location是CHARINDEX函數開始在expression2中找expression1的位置。

SQL CHARINDEX函數返回一個整數,返回的整數是要找的字元串在被找的字元串中的位置。假如SQL CHARINDEX函數沒有找到要找的字元串,那麼函數整數「0」。看下面的函數命令執行的結果:

CHARINDEX('SQL','MicrosoftSQLServer')

這個函數命令將返回在「Microsoft SQL Server」中「SQL」的起始位置,在這個例子中,CHARINDEX函數將返回「S」在「Microsoft SQL Server」中的位置11。

接下來,看這個CHARINDEX命令:

CHARINDEX('7.0','MicrosoftSQLServer2000')

在這個例子中,CHARINDEX返回零,因為字元串「7.0」 不能在「Microsoft SQL Server」中被找到。

10. 如何實現sqlserver單步調試

1、將伺服器【身份驗證】屬性設置成【混合模式】(window與sql身份驗證)
2、在【控制面板】中打開【服務】將【MSSQLSERVER】服務打開【屬性】,選擇【登錄】頁面,將登錄身份設置成伺服器本地帳號和該帳號密碼,如administrator,密碼123;
3、重新啟動sqlserver服務,此時的服務指的是【SQL服務管理器】中的SQL Server服務;
假設【帳號】設置為administrator
此時達到的效果是:伺服器本地帳號administrator與客戶端上的administrator(並且該帳號的密碼要與伺服器密碼相同)可以通過【查詢分析器】進行調試;
如果想讓【其他帳號】也能夠調試,那麼還需要如下設置:
1、在【伺服器】上運行dcomcnfg.exe;
2、在【默認安全機制】中【默認訪問許可權】右邊點擊【編輯默認值】選擇允許調試的帳號類型,如users用戶類型,sample帳號有包含users組;
3、重新啟動sqlserver服務;
4、在客戶端上創建與服務帳號密碼一樣的用戶,如sample;
做到這步就可以通過查詢分析器的調試功能進行單步調試了。
註:第二步更改「啟動服務帳戶」,在第一次登錄之前,必須更改用戶密碼。
不然,event log:以當前密碼登錄的嘗試因下列錯誤將宣告失敗:
在第一次登錄之前,必須更改用戶密碼。