将数据从临时 table 插入永久 table
Inserting data from a temp table into a permanent table
我的目标是找出两个 table 之间的差异并将结果放入永久 table。
密码是:
BEGIN
CREATE TABLE #TempTable ([number] nvarchar(255))
(
SELECT [number] FROM [TABLE_X] WHERE [TABLE_X.number]
EXCEPT
SELECT [number] FROM [TABLE_Y] WHERE [TABLE_Y.number]
)
EXECUTE sp_executesql N'INSERT INTO #TempTable ([number])'
INSERT INTO [Error_messages]
SELECT 'TABLE_X','Table', number+' is missing from the [TABLE_X], but can be found in [TABLE_Y]' ,GETDATE() FROM #TempTable
DROP TABLE #TempTable
END
虽然我可以看到第一部分成功 运行,但第二部分崩溃了,我收到了不正确的语法消息,是因为我想混合使用动态插入和静态插入吗?
- 您的查询有很多语法错误
- 不清楚为什么需要动态 SQL,或者为什么需要临时 table
- 你没有描述永久table应该是什么样子,我猜了
- 根据您尝试存储的消息,
EXCEPT
是错误的方式
CREATE TABLE NewTable
(TableName sysname, ObjectType sysname, Message nvarchar(300), DateChecked datetime);
INSERT NewTable
(TableName, ObjectType, Message, DateChecked)
SELECT 'TABLE_X','Table', number+' is missing from the [TABLE_X], but can be found in [TABLE_Y]' ,GETDATE()
(
SELECT [number] FROM [TABLE_Y]
EXCEPT
SELECT [number] FROM [TABLE_X]
) t
我的目标是找出两个 table 之间的差异并将结果放入永久 table。
密码是:
BEGIN
CREATE TABLE #TempTable ([number] nvarchar(255))
(
SELECT [number] FROM [TABLE_X] WHERE [TABLE_X.number]
EXCEPT
SELECT [number] FROM [TABLE_Y] WHERE [TABLE_Y.number]
)
EXECUTE sp_executesql N'INSERT INTO #TempTable ([number])'
INSERT INTO [Error_messages]
SELECT 'TABLE_X','Table', number+' is missing from the [TABLE_X], but can be found in [TABLE_Y]' ,GETDATE() FROM #TempTable
DROP TABLE #TempTable
END
虽然我可以看到第一部分成功 运行,但第二部分崩溃了,我收到了不正确的语法消息,是因为我想混合使用动态插入和静态插入吗?
- 您的查询有很多语法错误
- 不清楚为什么需要动态 SQL,或者为什么需要临时 table
- 你没有描述永久table应该是什么样子,我猜了
- 根据您尝试存储的消息,
EXCEPT
是错误的方式
CREATE TABLE NewTable
(TableName sysname, ObjectType sysname, Message nvarchar(300), DateChecked datetime);
INSERT NewTable
(TableName, ObjectType, Message, DateChecked)
SELECT 'TABLE_X','Table', number+' is missing from the [TABLE_X], but can be found in [TABLE_Y]' ,GETDATE()
(
SELECT [number] FROM [TABLE_Y]
EXCEPT
SELECT [number] FROM [TABLE_X]
) t