私はテーブルを持っています
CREATE TABLE #Agency
(
AgencyID int PRimary KEY IDENTITY(1,1),
AgencyName varchar(100),
AgencyCode varchar(50)
)
テーブルに挿入するときに一意の代理店コードを生成したい...代理店コードはアルファベットのみで構成する必要があります..数字や特殊文字は使用できません
ありがとうございました
私はテーブルを持っています
CREATE TABLE #Agency
(
AgencyID int PRimary KEY IDENTITY(1,1),
AgencyName varchar(100),
AgencyCode varchar(50)
)
テーブルに挿入するときに一意の代理店コードを生成したい...代理店コードはアルファベットのみで構成する必要があります..数字や特殊文字は使用できません
ありがとうございました
ID を varchar にキャストし、すべての数字を文字 (または組み合わせ) に置き換えるという簡単なことを行うことができます。
1=A、2=B など。
したがって、ID が一意である限り、コードも一意になります。
スニペットは次のようになります。
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
CAST(AgencyID AS VARCHAR(50))
,'1','A'),'2','B'),'3','C'),'4','D'),'5','E'),'6','F'),'7','G'),'8','H'),'9','I'),'0','J')
挿入中に実行したい場合は、 IDENT_CURRENT('tablename') を使用して、ID 列に挿入する値を取得できます。
INSERT INTO Agency (AgencyName, AgencyCode)
SELECT 'Name001',
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
CAST(IDENT_CURRENT('Agency') AS VARCHAR(50))
,'1','A'),'2','B'),'3','C'),'4','D'),'5','E'),'6','F'),'7','G'),'8','H'),'9','I'),'0','J')
;
数値を文字列や計算列に変換する関数を作成すると、より使いやすくなる場合があります。
編集:
アプリケーションで文字列を生成することをお勧めします。そうすれば、T-SQL よりも手続き型コードに適した言語を使用できます。とにかく、可能であればロジックを SQL Server から除外することをお勧めします。