Я создал две таблицы
tbl1 :
CREATE TABLE [dbo].[tbl1]
(
[Costumer ID] [INT] NOT NULL,
[Name of the Costumer] [NVARCHAR](50) NOT NULL,
[Contact Number 1] [NCHAR](11) NULL,
[Contact Number 2] [NCHAR](11) NOT NULL,
[Email Id] [NVARCHAR](50) NULL,
[Address] [NVARCHAR](1000) NOT NULL,
[Dust] [NUMERIC](18, 0) NOT NULL,
[M.sand] [NUMERIC](18, 0) NOT NULL,
[6MM] [NUMERIC](18, 0) NOT NULL,
[10MM] [NUMERIC](18, 0) NOT NULL,
[40MM] [NUMERIC](18, 0) NOT NULL,
[Bolders] [NUMERIC](18, 0) NULL
) ON [PRIMARY]
GO
tbl2 :
CREATE TABLE [dbo].[tbl2]
(
[DCN] [INT] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[Party] [NVARCHAR](50) NULL,
[Material] [NVARCHAR](50) NULL,
[Rate] [NVARCHAR](4000) NULL,
CONSTRAINT [UK_tbl_intedrlink_dcno]
PRIMARY KEY CLUSTERED ([DCN] ASC)
) ON [PRIMARY]
GO
и создалхранимая процедура в виде пары
CREATE PROCEDURE [dbo].[sp1]
@mat NVARCHAR(1000) = NULL,
@party NVARCHAR(1000) = NULL
AS
BEGIN
DECLARE @sql NVARCHAR(4000);
DECLARE @params NVARCHAR(4000);
DECLARE @rate NVARCHAR(1000);
SET @sql ='select ['+@mat+'] from tbl1'+ ' where [Name of the Costumer] = @party' set @params = '@party nvarchar (1000)' exec sp_executesql @sql, @params,@party= @party
INSERT INTO tbl2([Party], [Material], rate)
SELECT @party, @mat, @rate
END
Когда я выполняю хранимую процедуру, я хочу вставить значения в tbl2
, который направлен от tbl
.
Но когда я выполняю хранимую процедуру, я получаю результат следующим образом
![enter image description here](https://i.stack.imgur.com/Vf5qE.png)
В tbl2
, rate
столбец добавляется как ноль, где я хотел взять результат sp1
(хранимая процедура) и вставить значение в столбец rate
.
Я не установил @rate
в значение,Я хочу установить результат exec sp_executesql
как значение @rate
Может кто-нибудь помочь решить проблему?