我不認爲SQL Server允許使用 「默認」,在那裏你可以說一個表達式:
insert into TABLE_NAME (name, rating, link)
values (coalesce(@name, default), coalesce(@rating, default), coalesce(@link, default))
所以,離開動態SQL。像這樣的:
declare @sql nvarchar(max);
set @sql = 'insert into TABLE_NAME(name, rating, link)
values (' + (case when @name is null then 'default' else '@name' end) + ', ' +
(case when @rating is null then 'default' else '@rating' end) + ', ' +
(case when @link is null then 'default' else '@link' end))';
exec sp_executesql @sql, N'@name ??, @rating ??, @link ??',
@name = @name, @rating = @rating, @link = @link;
完美,這就是我所需要的。我沒有意識到這一點。 –