多重陈述式资料表值函数.PPT

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多重陈述式资料表值函数

NEXT VALUE FOR 的使用技巧 * 使用 SELECT...INTO 或 INSERT...VALUES 來新增記錄: NEXT VALUE FOR 的使用技巧 * 使用於 UPDATE 子句更改記錄: NEXT VALUE FOR 的使用技巧 用來做為欄位的預設值。底下將順序物件設為序號欄的預設值: * NEXT VALUE FOR 的使用技巧 * 順序物件用於 SELECT 敘述時若需要排序, 不可使用ORDER BY 子句來排序 (會視為錯誤), 而必須改用 OVER(ORDER BY...) 子句才行: NEXT VALUE FOR 不適用的場合 * 當資料庫在唯讀模式中。 不能做為資料表值函式、彙總函式的參數。 不能用於子查詢、檢視表、使用者自訂函數、或計算欄位中。 不能用在包含 DISTINCT、UNION、UNION ALL 的敘述中。 不能用在包含 ORDER BY 子句的敘述中 (但可以搭配 OVER (ORDER BY...) 子句來排序)。 NEXT VALUE FOR 不適用的場合 不能用在下列子句中: FETCH、OVER、OUTPUT、ON、PIVOT、UNPIVOT、GROUP BY、HAVING、或 FOR XML。 在使用 CASE、CHOOSE、COALESCE、IIF、ISNULL 或 NULLIF 的條件運算式中。 不能用在 WHERE 子句、或不屬於 INSERT 陳述式的 VALUES 子句中。 不能用在檢查條件約束的定義中 (但可以用在預設值條件約束的定義中)。 * NEXT VALUE FOR 不適用的場合 不能用在規則物件或預設值物件的定義中, 也不能做為使用者定義資料表類型的預設值 (有關規則物件、預設值物件、及使用者定義資料表類型, 可參見附錄 B)。 不能用在包含 TOP、OFFSET 的敘述中,或是設定 ROWCOUNT 選項時。 不能用在 MERGE 敘述中 (除非 NEXT VALUE FOR 已用於目標資料表的預設值條件約束中, 而且預設值用於 MERGE 陳述式的 CREATE 敘述中)。 * NEXT VALUE FOR 的使用技巧 如果想要向順序物件一次取得 “連續的” 多個編號, 可改用 sp_sequence_get_range 預存程序來取 號, 例如: * 在資料表的設定中使用函數 * 在資料表的設定中使用函數 * 在資料表的設定中使用函數 * 在資料表的設定中使用函數 * 在資料表的設定中使用函數 * 在資料表的設定中使用函數 * 在資料表的設定中使用函數 * 在資料表的設定中使用函數 * 在自訂函數中使用敘述的限制 可用 DECLARE 敘述來宣告要使用於函數中的變數, 而這些變數的有效範圍只限於函數中;當函數結束時, 宣告的變數也會跟著消失。 可用 SET 敘述將資料指定給變數。 若使用 SELECT 敘述, 則必須將查詢結果指定給變數。 可使用 INSERT、UPDATE、DELETE 敘述針對函數中的 table 變數做處理。 * 在自訂函數中使用敘述的限制 可使用流程控制敘述, 如 IF、WHILE 等, 但禁用TRY...CATCH 敘述。 可用 EXECUTE 敘述來執行延伸預存程序。其他預存程序或 SQL 字串則不可執行。 可在函數中建立 CURSOR 、前後移動 CURSOR 中的記錄位置、或使用 FETCH...INTO 將資料存入變數中。 * 在自訂函數中使用敘述的限制 在函數中不可更改到資料庫的任何設計、設定、或資料表內容。我們只能擷取、計算資料, 或是修改在函數中宣告的變數內容。 所執行的敘述不可直接傳回資料集給應用程式, 例如不可用 “SELECT 姓名 FROM ...”, 而應改為“SELECT @var= 姓名 FROM ... 將查詢結果存入變數中。 * 決定性與非決定性函數 * 決定性函數 非決定性函數 決定性與非決定性函數 自訂函數已設定了 SCHEMABINDING 選項。 在自訂函數中沒有呼叫任何『非決定性』的自訂函數或內建函數。 在自訂函數中沒有使用到任何的資料庫物件 (但在函式中宣告的 table 變數除外), 例如資料表、檢視表等。 自訂函數中沒有呼叫任何的延伸預存程序。 * 決定性與非決定性函數 當資料表或檢視表的計算欄位中有使用到『非決定性』函數時, 該欄位將不允許用來建立索引。 當檢視表中有使用到『非決定性』函數時, 則該檢視表將不允許建立叢集索引 ( Clustered index)。 * 設定 SCHEMABINDING 時的限制 在自訂函數中所使用到的檢視表及其他自訂函數, 都必須是已經設定為 SCHEMABINDING 的。 自訂函數與其中使用到的

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档