2000下自定義函式呼叫不確定性內建系統函式
2000下自定義函式和不確定性內建系統函式
作者:hapyflystoneblog:http://blog.csdn.net/happyflytone
轉載請註明出處
我們經常在想自定義函式內呼叫一些不確定性的系統函式,可是天不作美系統會報錯,下面演示一下系統函式getdate().
--建立函式
createfunction f_getsystemdate()
returns datetime
as
begin
returngetdate()
end
go
--呼叫
select dbo.f_getsystemdate()
--刪除
dropfunction f_getsystemdate
/*
訊息443,級別16,狀態1,過程f_getsystemdate,第5 行
在函式內不正確地使用了'getdate'。
*/
那麼我們如何來解決這個問題呢,參照http://sqlserver2000.databases.aspfaq.com/how-do-i-use-getdate-within-a-user-defined-function-udf.html 作如下整理:
(注:以下以getdate()為例說明解決方法)
--1、把不確定性的系統函式值作為引數傳入
--建立函式
createfunction f_getsystemdate(@dt datetime)
returns datetime
as
begin
return @dt
end
go
--呼叫
select dbo.f_getsystemdate(getdate())
/*
-----------------------
2008-12-24 12:46:25.850
(1 行受影響)
*/
--呼叫
declare @dt datetime
set @dt =getdate()--或:set @dt = CURRENT_TIMESTAMP
select dbo.f_getsystemdate( @dt)
/*
-----------------------
2008-12-24 12:46:25.850
(1 行受影響)
*/
--
dropfunction f_getsystemdate
--2、檢視
createview v_currentsystemtime
as
selectgetdate()as dt
go
createfunction f_getsystemdate()
returns datetime
as
begin
declare @dt datetime
select @dt = dt from v_currentsystemtime
return @dt
end
go
--呼叫
select dbo.f_getsystemdate()
/*
-----------------------
2008-12-24 12:49:08.883
(1 行受影響)
*/
--刪除
dropfunction f_getsystemdate
dropview v_currentsystemtime
--3、擴充套件過程
--藉助第三方工具做一個DLL然後在SQL SERVER中註冊成擴充套件過程,然後在函式裡直接呼叫。
--4、openquery,openrowset
createfunction f_getsystemdate()
returns datetime
as
begin
declare @dt datetime
select@dt= dt
fromopenrowset
('SQLOLEDB','.';'sa ';'',
'select CURRENT_TIMESTAMP as dt')
--from OPENROWSET
--( 'SQLOLEDB', '.'; 'sa '; '', 'select getdate() as dt')
--from OPENROWSET
--('SQLOLEDB','SERVER=.;UID=sa;PWD=','select getdate() as dt')
--from OPENROWSET
--('SQLOLEDB','SERVER=.;
--UID=sa;PWD=','select CURRENT_TIMESTAMP as dt')
return @dt
end
go
--呼叫
select dbo.f_getsystemdate()
/*
-----------------------
2008-12-24 12:55:11.583
(1 行受影響)
*/
--刪除
dropfunction f_getsystemdate
--如果有linkserver還可以這樣:
FROMOPENQUERY('flystone','SELECT dt = GETDATE()')
--5、openrowset+proc
use jhhis
go
createproc pr_getsystemdate
as
begin
selectgetdate()as dt
end
go
createfunction f_getsystemdate()
returns datetime
as
begin
declare @dt datetime
select@dt= dt
fromopenrowset
('SQLOLEDB','.';'sa ';'',
' exec jhhis.dbo.pr_getsystemdate ')
--from OPENROWSET
--('SQLOLEDB','SERVER=.;UID=sa;PWD=','select getdate() as dt')
return @dt
end
go
--呼叫
select dbo.f_getsystemdate()
/*
-----------------------
2008-12-24 13:05:06.250
(1 行受影響)
*/
--刪除
dropfunction f_getsystemdate
dropproc pr_getsystemdate
--說明:本blog參照了
http://sqlserver2000.databases.aspfaq.com/how-do-i-use-getdate-within-a-user-defined-function-udf.html
--大家可以去看看
相關推薦
2000下自定義函式呼叫不確定性內建系統函式
2000下自定義函式和不確定性內建系統函式 作者:hapyflystoneblog:http://blog.csdn.net/happyflytone 轉載請註明出處 我們經常在想自定義函式內呼叫一些不確定性的系統函式,可是天不作美系統會報錯,下面演示一下系統函式getdate(). --建
Python函式的基本定義和呼叫以及內建函式
首先我們要了解Python函式的基本定義: 函式是什麼? 函式是可以實現一些特定功能的小方法或是小程式。在Python中有很多內建函式,當然隨著學習的深入,你也可以學會建立對自己有用的函式。簡單的理解下函式的概念,就是你編寫了一些語句,為了方便使用這些語句,把這些語句組合在一起,給它起一個名字。使用的時候只要
【Vue】通過自定義指令回顧 v-內建指令
Vue.js 的各種指令(Directives)更加方便我們去資料驅動 DOM,例如 v-bind、v-on、v-model、v-if、v-for、v-once 等內建指令,這些指令的職責就是當表示式改變時將某些行為應用到 DOM 上,儘量不去操作增刪改 DOM。通過了解如何去自定義指
關於內建型別與自定義型別呼叫new初始化問題
int *p1 = new int[10]; int *p2 = new int[10](); p1僅僅是用new分配記憶體,並不會初始化 p2不僅分配記憶體,還會初始化為0 解釋: 對於內建型別,如int char系統自帶的呼叫new時,若沒有加()顯示呼叫它的建構函式
python在引用其他資料夾下自定義函式
專案層次結構類似於此,現在需要在stup.py檔案中引用A.py檔案中定義的函式 test, 可以採用: from Lib.A import test A.py內容: #-*- coding: UTF-8 -*- import sys reload(sys) sy
ASP.NET MVC下自定義錯誤頁和展示錯誤頁的幾種方式
提供服務 one url attribute 運行 16px execute 釋放 namespace 在網站運行中,錯誤是不可避免的,錯誤頁的產生也是不可缺少的。 這幾天看了博友的很多文章,自己想總結下我從中學到的和實際中配置的。 首先,需要知道產生錯誤頁的來源,一種
mac下自定義偽協議配置
xxx element https src internet -c pos tro six 之前查了很多資料,最近也在挖掘研究這方面的漏洞. windows的很簡單,在註冊表配置就好了,但是mac os 是unix的,沒有註冊表這麽一說。 但是發現騰訊等配置了自定義等協
Ubuntu下自定義調整CPU工作頻率(用於省電或提高性能都好用)
win -i 安裝 use nal spa cpufreq 調整 系統 昨天高鐵上拿T480切win10系統看電影,為了節電給細調了個省電策略(設置CPU性能30%),不知是不是因為這個原因,今天切回Ubuntu1604工作導致CPU工作頻率非常低。 查閱了一下相關方法,c
tomcat載入webapp下自定義web專案失敗的可能原因(最奇葩的那個)
上面半段純屬反省,原因在末尾 我遇到的問題如下: tomcat的正常訪問沒問題,但是我加到webapp資料夾下的web專案沒法執行,老是 not found 404 ,嘗試了無數次,我都放棄了一整天了,但是沒辦法啊,我看的教程必須用這個,所以第二天我爬起來繼續找問題,這天
微信公眾號在開發者模式下自定義選單
要知道公眾號開啟開發者模式後,公眾號自帶的功能就不能使用了。 那麼如何自定義選單呢? 此時,我們要通過介面來配置微信自定義選單,微信自定義選單介面連結 先檢視官方文件的自定義選單: 然後,我們開啟微信公眾平臺介面除錯工具 介面除錯工具 首先,通過appid以及secret來獲取acces
ASP.NET MVC 下自定義模型繫結,去除字串型別前後的空格
直接貼程式碼了: SkyModelBinder.cs using System.ComponentModel; using System.Linq; using System.Web.Mvc; namespace MvcSample.Extensions { public cl
百度地圖的覆蓋物自定義(二)--資訊視窗的自定義(呼叫白茹提供的資訊視窗InfoWindow)
百度地圖的覆蓋物自定義(而)--資訊視窗的自定義(呼叫白茹提供的資訊視窗InfoWindow) var point=new BMap.Point(111.54525,45.578); setInfo
【Linux下自定義Shell終端提示符】
目錄 基本轉義符 字型顏色 背景顏色 移動游標 @ Linux系統終端提示符的特徵由系統環境變數 PS1(Prompt String One)定義。 我們可以通過命令echo $PS1來檢視當前設定,如下圖: 同樣,我們可以通過修改PS1的值來改變終端提示資訊: 但這只是臨時
CentOS7下自定義目錄安裝mono+jexus教程
一、閱讀前須知: 1.本文屬於安裝完Centos7之後的步驟 2.如果還不瞭解mono,請點選mono 3.本篇主要內容是使用自定義目錄安裝mono+jexus教程,使用預設目錄請檢視使用預設目錄安裝 二、安裝步驟 1.準備環境 yum -y install gcc gcc-c++ bison
golang在linux環境下自定義包(一招解決問題)
由於是go語言新手,有些簡單的問題處理起來有點困難。現在從go安裝到執行詳細地說起 關於go語言在linux環境下自定義包的問題困擾了我好大一會。 下面我就從前往後詳細地說一下解決方法,一招解決問題。 (I)linux下解決,從go安裝開始說起 命令安裝比直接在先下載golang
EditTextPreference 下自定義彈出Dialog並獲取
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="
vue.js下自定義時間格式
一、使用自定義js的正則表示式 //頁面上呼叫過濾器(頁面上) {{date | formatDate}} //建立過濾器(new Vue()中) filters: {
Laravel5下自定義錯誤頁面的配置
♩ 背景 最近試著學習 laravel 5.5,使用 composer 下載新的框架原始碼 composer create-project --prefer-dist laravel/lar
React Native自定義外掛,呼叫android原生程式碼
Hi,寶寶們,我又來了,16有你,17前行,18怎麼辦?18讓我們一起學習RN吧,hybrid現在是一個前沿,雖然官網說Learn once, write anywhere~~~ 僅需學習一次,編寫任何平臺。但是你不能指望它幹任何事啊,android原生的很多功能還是無法直接使用的,這個時
C# WPF下自定義滾動條ScrollViewer樣式
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/20