[英]SQL invalid column name error
这是工作查询;
@tc varchar(11),
@urun nvarchar(50),
@islem nvarchar(20),
@ilk_agirlik nvarchar(4),
@son_Agirlik nvarchar(4)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tabloadi NVARCHAR(15)
declare @sutunadi1 nvarchar(max)
set @sutunadi1 = @urun+N'_'+@islem+N'_ilk'
declare @sutunadi2 nvarchar(max)
set @sutunadi2 = @urun+N'_'+@islem+N'_son'
SET @tabloadi=@tc
IF EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME=@tabloadi
AND COLUMN_NAME=@sutunadi1)
BEGIN
declare @sql nvarchar(max)
SET @Sql = N'insert into dbo.' + QUOTENAME(@Tc)
+ N'(' + QUOTENAME(@sutunadi1)+ N',' + QUOTENAME(@sutunadi2) + N', gun, ay, yil, saat, dakika) '
+ N'VALUES (' + @ilk_agirlik+ N',' + @son_agirlik + N',' + convert(varchar(2),day(GETDATE())) + N',' + convert(varchar(2),month(GETDATE())) + N',' + convert(varchar(4),year(GETDATE())) + N',' + convert(varchar(2),datepart(hh,GETDATE())) + N',' + convert(varchar(2),datepart(mi,GETDATE())) + N')'
EXECUTE sp_executesql @Sql
END
当我在表中添加2列名称为urun和islem的列时,我刚刚更改了此代码;
SET @Sql = N'insert into dbo.' + QUOTENAME(@Tc)
+ N'(' + QUOTENAME(@sutunadi1)+ N',' + QUOTENAME(@sutunadi2) + N', gun, ay, yil, saat, dakika, urun, islem) '
+ N'VALUES (' + @ilk_agirlik+ N',' + @son_agirlik + N',' + convert(varchar(2),day(GETDATE())) + N',' + convert(varchar(2),month(GETDATE())) + N',' + convert(varchar(4),year(GETDATE())) + N',' + convert(varchar(2),datepart(hh,GETDATE())) + N',' + convert(varchar(2),datepart(mi,GETDATE())) + N',' + @urun + N',' + @islem + N')'
它产生一个错误,即“无效的列名”是什么错误,我刚刚将两列添加到工作查询中?
尝试将最后一行替换为:
+ N'VALUES (' + @ilk_agirlik+ N',' + @son_agirlik + N',' + convert(varchar(2),day(GETDATE())) + N',' + convert(varchar(2),month(GETDATE())) + N',' + convert(varchar(4),year(GETDATE())) + N',' + convert(varchar(2),datepart(hh,GETDATE())) + N',' + convert(varchar(2),datepart(mi,GETDATE())) + N',''' + @urun + N''',''' +@islem + N''')'
它解决了。 当我使用char(39)并解决问题时,thanx Kannan Kandasamy提出了解决方案。
SET @Sql = concat('insert into dbo.', QUOTENAME(@Tc),
'(', QUOTENAME(@sutunadi1),',',QUOTENAME(@sutunadi2) ,', gun, ay, yil, saat, dakika, urun, islem) '
,'VALUES (' , @ilk_agirlik,',' , @son_agirlik ,',',convert(varchar(2),day(GETDATE())) ,',',convert(varchar(2),month(GETDATE())) ,',' , convert(varchar(4),year(GETDATE())) ,',' , convert(varchar(2),datepart(hh,GETDATE())) ,',' , convert(varchar(2),datepart(mi,GETDATE())) ,',' , char(39), @urun,char(39),',', char(39),@islem,char(39) ,')')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.