<optgroup id="r9hwm"></optgroup><nav id="r9hwm"><label id="r9hwm"></label></nav>

    <tt id="r9hwm"><tr id="r9hwm"></tr></tt>
  1. 
    
  2. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

  3. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

        1. <listing id="r9hwm"></listing>
          <delect id="r9hwm"></delect>
          <optgroup id="r9hwm"><samp id="r9hwm"><ol id="r9hwm"></ol></samp></optgroup>

          執行存儲過程的語句

          sql server 用什么執行存儲過程語句

          執行帶參數的存儲過程的方法如下:

          Exec sp_configure 'allow updates',1 --允許更新系統表。

          exec *_ChangeObjectOwnerBatch 'OldOwner','dbo'

          以上是兩個例子。

          SQL Server中執行帶參數的存儲過程的方法是:

          EXEC 存儲過程名字 '參數1','參數2',數值參數

          EXEC 是一個關鍵字。

          字符串參數使用單引號括起來,數值參數不需要使用單引號

          編寫存儲過程,獲取到部門30的平均工資,并寫出執行存儲過程的語句

          存儲過程:

          CREATE OR REPLACE PROCEDURE EMP_LIST AS

          v_sal number;

          BEGIN

          select avg(sal) into v_sal from emp where deptno=30 group by deptno;

          DBMS_*_LINE(v_sal);

          END;

          調用:

          begin

          emp_list_avg;

          end;

          存儲過程怎么查看執行sql語句

          MSSQL為我們提供了兩種動態執行SQL語句的命令,分別是EXEC和 sp_executesql;通常,sp_executesql則更具有優勢,它提供了輸入輸出接口,而EXEC沒有。

          還有一個最大的好處就是利用 sp_executesql,能夠重用執行計劃,這就大大提供了執行性能,還可以編寫更安全的代碼。EXEC在某些情況下會更靈活。

          除非您有令人信服的理 由使用EXEC,否側盡量使用sp_*的使用 EXEC命令有兩種用法,一種是執行一個存儲過程,另一種是執行一個動態的批處理。以下所講的都是第二種用法。

          下面先使用EXEC演示一個例子,代碼1 代碼 DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT; SET @TableName = 'Orders'; SET @OrderID = 10251; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+ CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC' EXEC(@sql); 注:這里的EXEC括號中只允許包含一個字符串變量,但是可以串聯多個變量,如果我們這樣寫EXEC:EXEC('SELECT TOP('+ CAST(@TopCount AS VARCHAR(10)) +')* FROM '+ QUOTENAME(@TableName) +' ORDER BY ORDERID DESC'); SQL編譯器就會報錯,編譯不通過,而如果我們這樣:EXEC(@sql+@sql2+@sql3); 編譯器就會通過; 所以最佳的做法是把代碼構造到一個變量中,然后再把該變量作為EXEC命令的輸入參數,這樣就不會受限制了。 EXEC的缺點是不提供接口,這里的接口是指,它不能執行一個包含一個帶變量符的批處理,如下 代碼 DECLARE @TableName VARCHAR(50),@Sql NVARCHAR(MAX),@OrderID INT; SET @TableName = 'Orders'; SET @OrderID = 10251; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + 'WHERE OrderID = @OrderID ORDER BY ORDERID DESC' EXEC(@sql); 關鍵就在SET @sql這一句話中,如果我們運行這個批處理,編譯器就會產生一下錯誤 Msg 137, Level 15, State 2, Line 1 必須聲明標量變量 "@OrderID"。

          使用EXEC時,如果您想訪問變量,必須把變量內容串聯到動態構建的代碼字符串中,如:SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + 'WHERE OrderID = '+CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC' 串聯變量的內容也存在性能方面的弊端。SQL Server為每一個的查詢字符串創建新的執行計劃,即使查詢模式相同也是這樣。

          為演示這一點,先清空緩存中的執行計劃 DBCC FREEPROCCACHE (這個不是本文所涉及的內容,您可以查看MS的MSDN) 將代碼1運行3次,分別對@OrderID 賦予下面3個值,10251,10252,10253。然后使用下面的代碼查詢 SELECT cacheobjtype,objtype,usecounts,sql FROM *heobjects WHERE sql NOT LIKE '%cach%' AND sql NOT LIKE '%sys.%' 點擊F5運行,我們可以看到,每執行一次都要產生一次的編譯,執行計劃沒有得到充分重用。

          EXEC除了不支持動態批處理中的輸入參數外,他也不支持輸出參數。默認情況下,EXEC把查詢的輸出返回給調用者。

          例如下面代碼返回Orders表中所有的記錄數 DECLARE @sql NVARCHAR(MAX) SET @sql = 'SELECT COUNT(ORDERID) FROM Orders'; EXEC(@sql); 然而,如果你要把輸出返回給調用批處理中的變量,事情就沒有那么簡單了。為此,你必須使用INSERT EXEC語法把輸出插入到一個目標表中,然后從這表中獲取值后賦給該變量,就像這樣:代碼 DECLARE @sql NVARCHAR(MAX),@RecordCount INT SET @sql = 'SELECT COUNT(ORDERID) FROM Orders'; CREATE TABLE #T(TID INT); INSERT INTO #T EXEC(@sql); SET @RecordCount = (SELECT TID FROM #T) SELECT @RecordCount DROP TABLE #*_executesql的使用 sp_executesql命令在SQL Server中引入的比EXEC命令晚一些,它主要為重用執行計劃提供更好的支持。

          為了和EXEC作一個鮮明的對比,我們看看如果用代碼1的代碼,把EXEC換成sp_executesql,看看是否得到我們所期望的結果 代碼 DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OrderID INT ,@sql2 NVARCHAR(MAX); SET @TableName = 'Orders '; SET @OrderID = 10251; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE OrderID = '+CAST(@OrderID AS VARCHAR(50)) + ' ORDER BY ORDERID DESC' EXEC sp_executesql @sql 注意最后一行;事實證明可以運行;sp_executesql提供接口 sp_executesql命令比EXEC命令更靈活,因為它提供一個接口,該接口及支持輸入參數也支持輸出參數。這功能使你可以創建帶參數的查詢字符串,這樣就可以比EXEC更好的重用執行計劃,sp_executesql的構成與存儲過程非常相似,不同之處在于你是動態構建代碼。

          它的構成包括:代碼快,參數聲明部分,參數賦值部分。說了這么多,還是看看它的語法:EXEC sp_executesql @stmt= ,--類似存儲過程。

          轉載請注明出處華閱文章網 » 執行存儲過程的語句

          短句

          selectas查詢語句

          閱讀(320)

          簡單的select as語句 select as應該是select case。下面是簡單的select case語句(vbs腳本語言)。Select Case MyVarCase "red" msgbox "是紅色"Case "green" msgbox "

          短句

          for循環語句循環體

          閱讀(288)

          for循環的條件與循環體的執行順序. 您好,可以先假設一個for循環來看執行順序,如下: for(int i=0;i<10;i++) { 循環體 } 執行順序: 1.i=0 初始化初值。 2.i<10 進行判斷,如果條件為真,則繼續執行。 3.執行循環體代碼

          短句

          下列if語句不正確

          閱讀(238)

          以下不正確的if語句形式是() 對a=0,b++;的意思是看成一條語句,2個操作比如if(a>1) a=0,b++;等價如下:if(a>1) {a=0;b++;}如果是:if(a>1) a=0; b++;那么等價如下:if(a>1) {a=0;}b+

          短句

          英語句子的關系

          閱讀(502)

          英語語法句子組成成分關系問題 組成句子的各個部分叫句子成分。英語句子成分有主語,謂語,表語,賓語,賓語補足語,定語,狀語等。 順序一般是主語,謂語,賓語,賓語補足語,而表語,定語,狀語

          短句

          數據庫的更新語句

          閱讀(280)

          SQL的update語句怎么寫UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值,update語句的寫法:1、UPDATE table_name2、SET column1=value1,column2=value2,。3、WHERE

          短句

          mysql語句插入

          閱讀(250)

          求一個mysql插入語句 你的語句有錯,怎么沒有表名,我假釋是table_name,下面三個語句都可以,自己分析區別:insert into table_name (b) values ('這是b的值');insert into table_na

          短句

          javaifififelse語句

          閱讀(312)

          java中的if與else語句 if (條件一){} = 如果括號中條件一的正確,則執行大括號中的語句if (條件一){語句一} else{語句二} 如果條件一正確,執行語句一,否則執行語句二if (條件一){語句一} else if(條件二){語句二} 如

          短句

          六一兒童節語句

          閱讀(229)

          六一兒童節祝福語有哪些祝歲數大心眼少的小朋友們六一快樂!放縱一下吧,別憋著啦!知道你平常裝大人挺辛苦!過節了,想吃手就吃手,想尿床就尿床,誰管就咬誰!兒童節快樂! 祝咱們這些表面風光內心彷徨;容顏未老人已滄桑;似乎有才實為江郎;成就難有郁悶

          短句

          c語言中循環語句

          閱讀(342)

          c語言的三個循環語句該怎么區別呢 C語言循環控制語句是一個基于C語言的編程語句,該語句主要有while循環語句、do-while循環語句和for循環語句來實現循環結構。一、for循環 for循環語句的基本語法 for(表達式1;表達式2;表達式3){ 循環體

          短句

          like語句查詢語句

          閱讀(237)

          如何在數據庫里 用like語句查詢成語 在SQL結構化查詢語言中,LIKE語句有著至關重要的作用。LIKE語句的語法格式是:select * from 表名 where 字段名 like 對應值(子串),它主要是針對字符型字段的,它的作用是在一個字符型字段列

          短句

          爸爸語句

          閱讀(210)

          描寫父親的句子 看著父母日益蒼老的臉,日益佝僂的背,日益霜白的鬢發,日益蹣跚笨拙的腳步,我開始悔恨我自己。悔恨自己的無情、殘忍。在看過大千世界的眼里,卻找不到半絲一毫父

          短句

          while語句和for語句

          閱讀(297)

          for語句和while語句還有do while語句1:for循環 for語句的格式為:for (初始化語句; 條件語句; 控制語句){語句1 ;語句2 ;。.語句n ;}for 語句的執行順序是:首先執行“初始化語句”;然后測試“條件語句”;若條件成立,則執

          短句

          不開心的語句

          閱讀(218)

          形容人不開心的句子 參考:1、晨早鳴蟬令人倦,不及聆聽蜜蜂聲!2、天如此陰霾,沒有陽光,風狠狠地要撕裂我的臉,割破我的血管,吹亂我的頭發,掀開我的衣襟,讓我狼狽不堪,樹葉偷偷地嘲笑我…沒有人在意的可憐蟲…3、別總是讓我流淚了,又來給我擦干我受

          短句

          selectas查詢語句

          閱讀(320)

          簡單的select as語句 select as應該是select case。下面是簡單的select case語句(vbs腳本語言)。Select Case MyVarCase "red" msgbox "是紅色"Case "green" msgbox "

          短句

          for循環語句循環體

          閱讀(288)

          for循環的條件與循環體的執行順序. 您好,可以先假設一個for循環來看執行順序,如下: for(int i=0;i<10;i++) { 循環體 } 執行順序: 1.i=0 初始化初值。 2.i<10 進行判斷,如果條件為真,則繼續執行。 3.執行循環體代碼

          短句

          下列if語句不正確

          閱讀(238)

          以下不正確的if語句形式是() 對a=0,b++;的意思是看成一條語句,2個操作比如if(a>1) a=0,b++;等價如下:if(a>1) {a=0;b++;}如果是:if(a>1) a=0; b++;那么等價如下:if(a>1) {a=0;}b+

          短句

          數據庫的更新語句

          閱讀(280)

          SQL的update語句怎么寫UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值,update語句的寫法:1、UPDATE table_name2、SET column1=value1,column2=value2,。3、WHERE

          短句

          英語句子的關系

          閱讀(502)

          英語語法句子組成成分關系問題 組成句子的各個部分叫句子成分。英語句子成分有主語,謂語,表語,賓語,賓語補足語,定語,狀語等。 順序一般是主語,謂語,賓語,賓語補足語,而表語,定語,狀語

          短句

          mysql語句插入

          閱讀(250)

          求一個mysql插入語句 你的語句有錯,怎么沒有表名,我假釋是table_name,下面三個語句都可以,自己分析區別:insert into table_name (b) values ('這是b的值');insert into table_na

          短句

          javaifififelse語句

          閱讀(312)

          java中的if與else語句 if (條件一){} = 如果括號中條件一的正確,則執行大括號中的語句if (條件一){語句一} else{語句二} 如果條件一正確,執行語句一,否則執行語句二if (條件一){語句一} else if(條件二){語句二} 如

          短句

          簡短的經典語句

          閱讀(230)

          短的經典句子 一、24句最經典的句子!!( 1.記住該記住的,忘記該忘記的。改變能改變的,接受不能改變的 2.能沖刷一切的除了眼淚,就是時間,以時間來推移感情,時間越長,沖突越淡,仿佛不斷稀釋的茶。 3.怨言是上天得至人類最大的供物,也是人類禱告中最

          <optgroup id="r9hwm"></optgroup><nav id="r9hwm"><label id="r9hwm"></label></nav>

            <tt id="r9hwm"><tr id="r9hwm"></tr></tt>
          1. 
            
          2. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

          3. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

                1. <listing id="r9hwm"></listing>
                  <delect id="r9hwm"></delect>
                  <optgroup id="r9hwm"><samp id="r9hwm"><ol id="r9hwm"></ol></samp></optgroup>
                  亚洲丰满少妇xxxxx高潮