1

私はこのSQLでストアドプロシージャを使用しています:

INSERT INTO [dbTblUsers]([strUsername], [strPassword])
VALUES (@p1,@p2);
SELECT @@IDENTITY;

そしてプロシージャを呼び出します:

// Insert new user
nId = daUsers.InsertQuery(textBoxUsername.Text, textBoxPassword.Text);
// Insert new Twitter OAuth
daTwitterOAuth.Insert(nId, textBoxConsumerKey.Text, textBoxConsumerSecret.Text, textBoxToken.Text, textBoxTokenSecret.Text);

オブジェクト @@IDENTITY int を int nId にキャストするにはどうすればよいですか? このような?

nId = (int)daUsers.InsertQuery(textBoxUsername.Text, textBoxPassword.Text);
4

1 に答える 1

3

まず、使用しないでください@@IDENTTY-使用しSCOPE_IDENTITY()ます; トリガーが関係している場合、最初の方法では予期しない答えが得られる可能性があります。第二に; これらは両方とも 10 進数を返します。呼び出しサイト、IMO でキャストします。

SELECT CAST(SCOPE_IDENTITY() as int)
于 2013-02-08T14:29:28.213 に答える