如何运行while循环以在SQL中运行动态查询?
Declare @var1 nvarchar(max)
Declare @var2 nvarchar(max)
Declare @var3 nvarchar(max)
While loop ( @var1, @var2, @var3 .... )
Begin
insert into TableA
exec (@var1) .. - in the loop logic
End
答案 0 :(得分:1)
如果我理解得很好,您希望使用循环来执行一组动态SQL查询。然后,您需要使用表格在它们之间进行迭代, 我使用的是变量表,但如果愿意,可以使用临时表
import {
Directive,
ElementRef,
forwardRef,
HostListener,
Input,
Renderer2
} from "@angular/core";
import {
ControlValueAccessor,
NG_VALUE_ACCESSOR
} from "@angular/forms";
@Directive({
selector: "[ebppInputTextTrimmer]",
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => InputTextTrimmerDirective),
multi: true
}]
})
export class InputTextTrimmerDirective implements ControlValueAccessor {
@Input() prevVal: string;
@Input() isTrimEnabled: boolean;
onChange = (_: any) => {
}
onTouched = () => {
}
constructor(
private _renderer: Renderer2,
private _elementRef: ElementRef) {
}
writeValue(value: any): void {
const normalizedValue = value == null ? "" : value;
this._renderer.setProperty(this._elementRef.nativeElement, "value", normalizedValue);
}
registerOnChange(fn: (_: any) => void): void {
this.onChange = fn;
}
registerOnTouched(fn: () => void): void {
this.onTouched = fn;
}
setDisabledState(isDisabled: boolean): void {
this._renderer.setProperty(this._elementRef.nativeElement, "disabled", isDisabled);
}
@HostListener("input", ["$event.target.value"])
handleInput(inputValue: any): void {
let valueToProcess = inputValue;
if (this.isTrimEnabled) {
valueToProcess = inputValue.trim();
}
this.onChange(valueToProcess);
// set the value that is trimmed in the view
this._renderer.setProperty(this._elementRef.nativeElement, "value", valueToProcess);
}
}