实际上我想在表格中插入多行.表的结构是
Create Table tbl_username (id int autoincrement, username varchar(100), Primary key(id))
我试图插入多行像
Declare @s as varchar(100) set @s='(''name1''),(''name2'')' insert into tbl_username(username)values @s;
但我把输出作为
id username 1 (''name1''),(''name2'')
实际上我需要的输出是
id username 1 name1 2 name2
我怎样才能做到这一点?
使用动态SQL
Declare @s as varchar(100) Declare @sql as varchar(max) set @s='(''name1''),(''name2'')' set @sql = 'insert into tbl_username(username) values ' + @s; execute(@sql);
但是我会尽可能避免使用动态SQL.如果您的值不在变量中,那么执行此操作的标准方法是:
INSERT INTO tbl_username(username) values ('name1'),('name2')
要么
INSERT INTO tbl_username(username) values ('name1') INSERT INTO tbl_username(username) values ('name2')
如果可能,请选择上述之一,而不是最初提到的动态选项.