1
テーブル名、スキーマ名、および挿入値パラメータを渡すテーブルにレコードを挿入するための動的ストアドプロシージャを作成しようとしています。動的パラメータを使用したSQL Serverの挿入
テーブルパラメータから列名を選択して変数に格納するようにしましたが、挿入文を作成する方法を管理できません。
誰かが私を助けることができる場合は、ください。ここで
は私のクエリです:
DECLARE @TableName VARCHAR(100)
DECLARE @SchemaName VARCHAR(10)
DECLARE @Columns NVARCHAR(max)
DECLARE @VALUES NVARCHAR(MAX)
SET @SchemaName = 'dbo'
SET @TableName = 'CLASSROOMS'
SET @Columns = '';
SET @VALUES = 'Classroom1,25'
SELECT @Columns = @Columns + CAST(COLUMN_NAME AS varchar(50)) + ','
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
AND TABLE_SCHEMA = @SchemaName
AND ORDINAL_POSITION > 1
SET @Columns = SUBSTRING(@Columns, 1, Len(@Columns) - 1)
--SELECT @Columns
DECLARE @SQL AS NVARCHAR(MAX)
SET @SQL=N'INSERT INTO ' + @TableName + '(' + @Columns + ') VALUES (' + @VALUES + ')'
EXEC sp_executesql @SQL
そして、ここではClassroom
テーブルには、スクリプトを作成することです:
CREATE TABLE [dbo].[CLASSROOMS]
(
[ClassRoomID] [INT] IDENTITY(1,1) NOT NULL,
[ClassRoomName] [NVARCHAR](50) NOT NULL,
[MaxSits] [INT] NOT NULL,
CONSTRAINT [PK_CLASSROOMS]
PRIMARY KEY CLUSTERED ([ClassRoomID] ASC)
) ON [PRIMARY]
は事前
はい、それは、ありがとうございます。男性が不満を感じると、それを見ることができません:)ありがとうございました – user3782230
@ bruno秒で私を打つ!私は通常、 'EXEC'文をコメントアウトし、代わりに' Select @ SQL'を実行します。私はそれをコピーして新しいクエリに貼り付け、それが動作するかどうかを確認するために実行することができます!デバッグをもっと簡単にします! – MiguelH
@ bruno.almeida動的更新の例はどうですか? – user3782230