MSSQL Server 2008 で ID を生成したいのですが、「PV#000001#SV」のようにプレフィックス + 数値 + サフィックスになります。どちらがユーザー定義になりますか (構成によって異なります) 接頭辞、数値の長さ、接尾辞、および開始番号。数値は毎回増加します。
私はこれを書くために結びました:
Blockquote ALTER PROCEDURE [dbo].[spACC_SELECT_VOUCHER_NUMBER]
@COMPANY_ID uniqueidentifier, @VOUCHER_TYPE INT
はじめに
DECLARE @IS_AUTOMETIC BIT = (ACC_VOUCHER_CONFIG WHERE ACC_VOUCHER_CONFIG.VOUCHER_CONFIG_VALUE=@VOUCHER_TYPE から VOUCHER_CONFIG_NUMBERING_METHOD を選択)
IF(@IS_AUTOMETIC=1) BEGIN SELECT CASE WHEN SUBSTRING(V.VOUCHER_CODE, 7, 23) IS NULL THEN CASE WHEN VC.VOUCHER_CONFIG_PREFIX IS NULL THEN '' ELSE VC.VOUCHER_CONFIG_PREFIX END + RIGHT ('0000000000000'+ CAST( VC.VOUCHER_CONFIG_BEGINING_NUMBER AS VARCHAR), VC.VOUCHER_CONFIG_NUMERIC_WIDTH) + CASE WHEN VC.VOUCHER_CONFIG_SUFFIX IS NULL THEN '' ELSE VC.VOUCHER_CONFIG_SUFFIX END ELSE CASE WHEN VC.VOUCHER_CONFIG_PREFIX IS NULL THEN '' ELSE VC.VOUCHER_CONFIG_PREFIX END + RIGHT ('0000000000000'+ CAST((CAST( SUBSTRING(V.VOUCHER_CODE, 7, 23) AS INT)+1) AS VARCHAR), VC.VOUCHER_CONFIG_NUMERIC_WIDTH) + CASE WHEN VC.VOUCHER_CONFIG_SUFFIX IS NULL THEN '' ELSE VC.VOUCHER_CONFIG_SUFFIX END END AS VOUCHER_CODE FROM ACC_VOUCHER_CONFIG VC LEFT OUTER JOIN ACC_VOUCHER V ON VC.VOUCHER_CONFIG_VALUE = V.VOUCHER_TYPE WHERE VC.COMPANY_ID=@COMPANY_ID AND VC.VOUCHER_CONFIG_VALUE=@VOUCHER_TYPE END
終わり
数値の長さ/接尾辞を変更すると、機能しません。
ありがとう
ナヒド