T-SQL使用者函數(function)裡不能使用NEWID(副作用運算子)的解決方式

在使用者函數裡有用到NEWID、RAND等副作用運算子,會出現下面的錯誤:

【在函數中使用副作用運算子 ‘newid’ 無效。】

這時,可以NEWID等副作用運算子先存成一個VIEW,函數(function)再去使用VIEW就可以避開錯誤。

步驟一:
CREATE VIEW [dbo].[NEWID_v]
AS
SELECT NEWID() AS NEW_ID
步驟二:
select ROW_NUMBER() OVER (ORDER BY (select NEW_ID from NEWID_v ) ) AS RowNumber ,
Column1 , Column2 , Column3
from dbo.MyTable
WHERE Column1 = @str1 and Column1 = @str2

by mhchen15 on 23 6 月, 2016 in SQL SERVER - Tags:
Tags:

There are no comments.

Name*: Website: E-Mail*:
XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>