パラメータ名を含むテーブルにSQLクエリが格納されています。ストアドプロシージャで正しく実行する方法を知る必要があります。パラメータ付き動的SQL
これは、手順に
PROCEDURE [spMassUpdateSKUs]
@SKU AS NVARCHAR(20)
,@FIELD AS NVARCHAR(50)
,@VALUE AS NVARCHAR(50)
,@RESULT as Int = Null Output
AS
BEGIN
IF EXISTS(SELECT CODENUMBER FROM INVENTORY_MASTER WHERE [email protected])
BEGIN
DECLARE @SQLQUERY AS NVARCHAR(50)
SET @SQLQUERY=(SELECT SQLUPDATE FROM MASS_UPDATE WHERE [email protected])
EXEC SP_EXECUTESQL @SQLQUERY
END
私のSQLコードであり、これは私が本当のパラメータが、そのdoen't仕事に置き換えてみたテーブルからSQLクエリ
update inventory_master_flex set [email protected] where [email protected]
です。
SELECT REPLACE(REPLACE(@SQLQUERY,'@VALUE',@VALUE),'@SKU',@SKU)
この 'SELECT REPLACE(置換@(@ VALUE '、@ VALUE)、' @ SKU '、@ SKU)を実行すると、更新クエリはどのように見えますか?それは正しいかどうか?それはうまくいかないという意味ですか? ** departmentidとcodenumberが文字列の場合、一重引用符を使用する必要があります。** –
大文字と小文字の区別が異なります。既定では、SQL Serverは大文字と小文字を区別しませんが、テーブル、データベース、またはサーバーの構成が異なる場合があります。 –
あなたの値はあなたの現在の 'REPLACE'コードで引用されません。 [sp_executesql](https://technet.microsoft.com/en-us/library/ms175170.aspx)を使用して、パラメータを適切に渡す必要があります。 – Blorgbeard