0

これは、作成しようとしているストアド プロシージャです。

CREATE PROCEDURE [cih_owner].[UpdateDisplayOrder]
    @CbpTableName varchar (21), 
    @CbpObjId int,
    @CbpId int,
    @DisplayOrder int
AS
BEGIN
    IF (@CbpTableName = "CbpActivity")
    BEGIN
        UPDATE [cih_owner].[CbpActivity] SET DisplayOrder = @DisplayOrder WHERE Id = @CbpObjId AND CbpId = @CbpId
        ;
    END
END
GO

ただし、次の行では: (@CbpTableName = "CbpActivity") I get squigglies under "CbpActivity" with the error Invalid column name 'CbpActivity'

私がやろうとしているのは、ストアド プロシージャに送信した文字列を比較することだけです。

ありがとう!

4

3 に答える 3

1

文字列リテラルには、引用符の代わりにアポストロフィを使用する必要があります。

IF (@CbpTableName = 'CbpActivity')
于 2012-11-06T18:39:10.717 に答える
0

"次のようにforを変更しようとしましたか':

CREATE PROCEDURE [cih_owner].[UpdateDisplayOrder]
    @CbpTableName varchar (21), 
    @CbpObjId int,
    @CbpId int,
    @DisplayOrder int
AS
BEGIN
    IF (@CbpTableName = 'CbpActivity')
    BEGIN
        UPDATE [cih_owner].[CbpActivity] SET DisplayOrder = @DisplayOrder WHERE Id = @CbpObjId AND CbpId = @CbpId
        GO
    END
END
GO
于 2012-11-06T18:39:47.497 に答える
0

一重引用符を使用する必要があります

IF (@CbpTableName = 'CbpActivity')

文字列はSQLで一重引用符で囲まれています

于 2012-11-06T18:39:49.810 に答える