我必须生成一个动态生成的T-SQL脚本,该脚本将记录插入各种表中。我做了很多搜索和测试,但似乎找不到我要寻找的路径。
我知道以下是有效的SQL:
INSERT INTO [MyTable] ( [Col1], [Col2], [Col3] )
SELECT N'Val1', N'Val2', N'Val3';
但是,有可能写出与此类似的东西吗?
INSERT INTO [MyTable]
SELECT [Col1] = N'Val1', [Col2] = N'Val2', [Col3] = N'Val3';
通过在select语句中包含各列,我可以一次完成所有工作,而无需编写2行。显然我的想法行不通,我试图弄清楚是否有可能实现类似的目标,或者我需要坚持第一个。
非常感谢。
答案 0 :(得分:1)
insert
语句的最佳实践是在insert
子句中指定列列表,这有很好的理由:
identity_insert
设置为on
时。在任何情况下,select
语句的insert...select
子句中的列名或别名对于value列应到达的目标列没有任何影响。值仅根据它们在语句中的位置定向到目标。