我正在尝试创建一个迁移脚本,但我需要一些帮助:,我有一个非常基本的脚本将一个项目插入一个表中,但我试图以一种方式检查该项目是否存在,然后插入其他跳过它
这是我的代码:
use mydatabase;
INSERT INTO dbo.mytable(col1,col2,col3)
SELECT '3','test1','test3/abc.html';
答案 0 :(得分:2)
您不需要重复表达式只需使用value
构造:
INSERT INTO dbo.mytable(col1,col2,col3)
SELECT t.col1, t.col2, t.col3
FROM (values (3, 'test1','test3/abc.html')) t (col1, col2, col3)
WHERE NOT EXISTS (
SELECT 1
FROM dbo.mytable m
WHERE m.col1 = t.col1
AND m.col2 = t.col2
AND m.col3 = t.col3
);
答案 1 :(得分:1)
<ng-container *ngIf="!readonlyService.readonly; else readonlyView">
<input placeholder="Enter a value" [(ngModel)]="value">
</ng-container>
<ng-template #readonlyView>
Your readonly value is: {{value}}
</ng-template>
您可以根据您认为已插入的内容更改位置。
答案 2 :(得分:0)
这样的东西(但你需要某种钥匙来识别记录是否存在) -
IF NOT EXISTS(SELECT 1 FROM dbo.mytable WHERE col1 = '3' AND col2 = 'test1' AND col3 = 'test3/abc.html')
BEGIN
insert into dbo.mytable(col1,col2,col3)
SELECT '3','test1','test3/abc.html'
END
答案 3 :(得分:0)
使用MERGE:
CREATE TABLE #mytable (col1 nvarchar(20), col2 nvarchar(20), col3 nvarchar(20))
INSERT INTO #mytable(col1,col2,col3)
SELECT '3','test1','test3/abc.html';
Merge #mytable t
USING (SELECT '3','test1','test3/abc.html') s (col1, col2, col3)
ON t.col1 = s.col1
AND t.col2 = s.col2
AND t.col3 = s.col3
when not matched by target then
INSERT (col1,col2,col3) VALUES (s.col1, s.col2, s.col3);