電子書籍の厳選無料作品が豊富!

sqlserver2005の初心者です
いままでaccessで標準モジュールにユーザー関数を作成していました
Function 年齢(SEI) As Integer
Dim SEIDATE, HONSEI, UNSEI, HONY, HONM, UPD
Dim MH, DH As Integer
MH = 0: DH = 0
SEIDATE = DateValue(SEI)
If Not IsDate(SEI) Then Exit Function
UPD = DateSerial(Year(Date), Month(Date), Day(Date) + 1)
If Val(Mid(SEIDATE, 6, 2)) > Val(Mid(Date, 6, 2)) Or (Val(Mid(SEIDATE, 6, 2)) = Val(Mid(Date, 6, 2)) And Val(Right(SEIDATE, 2)) > Val(Right(Date, 2))) _
Or Right(Date, 5) = "12/31" Then MH = 1
HONY = DateValue(DateSerial(Year(SEIDATE) + MH, Month(Date), Day(UPD)))
UNENREI = DateDiff("YYYY", HONY, UPD)
年齢 = UNENREI '-------------SYAIN990112年齢勤続クエリー用------------------
If Val(Right(SEIDATE, 2)) > Val(Right(Date, 2)) Then DH = 1
HONM = DateValue(DateSerial(Year(Date) - MH, Month(SEIDATE) + DH, Day(UPD)))
UGETUREI = DateDiff("M", HONM, UPD)
HONSEI = DateValue(DateSerial(Year(Date), Month(Date) - DH, Day(SEIDATE)))
UHIREI = DateDiff("D", HONSEI, UPD)
End Function
宣言がない変数はpublic変数を設定しています
ここに例 s33/10/05の生年月日を飛ばして戻り値をえています

sqlserverで作成する場合テーブル関数なのかスカラ関数なのかわかりません、
余計な部分ははぶいていただいて簡単でけっこうですのでsqlserverでの記述をおしえていただけないでしょうか

A 回答 (1件)

SQl SERVER は ACCESS のMDB と違い、クエリの中に関数を埋め込むことはできないというかやりか方がまったく違います。


従来の 標準モジュールとまったく同じとは行きません。
Sql SERVER 2005 は Express版ですか?
それとも Standard もしくは Developper ですか?
もし、ライセンスを持っていて Express版以外なら
SQL Server Management Studio からエクスプローラ風に簡単にDB
の操作できるようになっています。
ツリーの中のプログラミングに「関数」があるはずです。
ここにユーザー関数を記述します。
いずれにせよ SQL文とストアド、関数の作成方法の知識が必要になります。
検索サイト(Google)で→ Create Function Sql server 2005
を検索してください。
マイクロソフト のサイト
http://www.microsoft.com/japan/msdn/sqlserver/se …
などを参考にしてください。
もし SQL CLR を用いるのであれば VB.NET でも開発できるようですが そこまでしなくてもたいていは SQL で作成した関数で間に合うのではないかと思います。
もしくは関数にしなくてもストアド内で完結してしまうかです。
提示している 関数の仕様、つまりやりたいことを教えてください。
アドバイスできると思います。
あと、誰かすでに作成しているフリーの関数のリソースなどを用いることも可能です。

この回答への補足

早速の返信ありがとうございます
sqlserver2005はマイクロソフトの180日間評価版でやっています
3月にStandard板を購入してありますがosがxpproのため5月にpcとwin2003serverを購入してsqlserver2005Standardをインストールするよていです
今日少し私なりに考えて試してみました、動作はエラーなくできました
後日その記述を公開しますのでご指摘いただきたいとおもいます
やりたいことはinsertストアドで生年月日をなげてやると年齢がかえってきてテーブルに作成する方法で今日現在のもの、指定日をした年齢と2とうりの方法です

補足日時:2007/04/03 21:11
    • good
    • 0
この回答へのお礼

なんとかストアドからスカラ値関数をよびだして計算することができました、ありがとうございました
追記で記述を公開しましたのでご指摘おねがいします
それから関数はテーブル値関数もありますがどちらで作成すればよいでしょうか

お礼日時:2007/04/04 21:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す