-2

同じスキーマが既に作成されている 2 つのテーブルがあります。Age(column) の制約が重複していない table1 -> table2 から行を挿入したい。クエリは実行されますが、何も挿入されません。

CREATE TABLE #Global (dbName varchar(100) NULL)
INSERT INTO #Global VALUES ('db1')

DECLARE @temp nvarchar(1000)
SELECT @temp = dbName from #Global

DECLARE @sql nvarchar(max)
SELECT @sql = 'INSERT INTO [dbo].[Person] ([age], [name])
              SELECT [age], [name]
              FROM [' + @temp + ']..[Person] 
              WHERE [Person].[age] <> [' + @temp + ']..[Person].[age]'
exec sp_executesql @sql

どんな助けでも大歓迎です!

4

3 に答える 3

2

where句はすべての行を除外します。

次のようなことを試してみてください。

DECLARE @sql nvarchar(max)
SELECT @sql = 'INSERT INTO [dbo].[Person] ([id], [age], [name])
              SELECT min([id]) as id, [age], min([name]) as name
              FROM [' + @temp + ']..[Person] 
              group by age'
exec sp_executesql @sql
于 2013-10-26T18:11:08.213 に答える
0

これを選択ステートメントとして試してください:

INSERT INTO [dbo].[Person] ([age], [name])
SELECT [age], [name]
FROM [' + @temp + ']..[Person] 
WHERE [' + @temp + ']..[Person].[age] 
not in (select distinct age from [dbo].[Person])
于 2013-10-27T09:04:43.410 に答える