我有一個外部遊標,一個內部遊標也有兩個表來使用。現在用外部遊標,我在表1中創建新列,並使用表2中的值命名它們,這很好。問題在於用於將值插入到另一個表中某個特定列的新列中的內部遊標女巫。這接合不起作用,但令我困惑的是我沒有收到任何錯誤信息。現在,我希望你明白我想要做的,這裏是代碼所以對有關問題的詳細說明註釋:INSERT INTO命令不起作用
DECLARE @rbr_param nvarchar(255)
DECLARE @vrednost nvarchar(255)
DECLARE @cName nvarchar(255)
DECLARE @sql nvarchar (255)
DECLARE curs CURSOR FOR SELECT DISTINCT rbr_param FROM dbo.parametri_pomocna ORDER BY rbr_param
OPEN curs
FETCH NEXT FROM curs
INTO @rbr_param
WHILE @@FETCH_STATUS = 0
BEGIN
SET @cName = 'P_'[email protected]_param+'_P'
EXEC('ALTER TABLE dbo.Parametri ADD ' + @cName + ' nvarchar(255)')
DECLARE vrd CURSOR FOR SELECT DISTINCT vrednost FROM dbo.parametri_pomocna
OPEN vrd
FETCH NEXT FROM vrd
INTO @vrednost
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'INSERT INTO dbo.Parametri'+(@cName)+ ' SELECT vrednost FROM dbo.parametri_pomocna WHERE vrednost = '[email protected]+ ' AND rbr_param = '[email protected]_param
if exists (select * from INFORMATION_SCHEMA.COLUMNS where table_name = 'dbo.Parametri' and column_name = '@cName')
begin
exec(@sql)
end
FETCH NEXT FROM vrd
INTO @vrednost
END --end vrd
CLOSE vrd
DEALLOCATE vrd
FETCH NEXT FROM curs
INTO @rbr_param
END
CLOSE curs
DEALLOCATE curs
圍繞'INSERT'中的'SELECT'語句嘗試wrapping()。 'INSERT INTO dbo.Parametri'+(@ cName)+'(SELECT vrednost FROM dbo.parametri_pomocna WHERE vrednost ='+ @ vrednost +'AND rbr_param ='+ @ rbr_param +')' – 2013-04-06 19:06:53
我試過了,但仍然一樣...沒有錯誤,但也沒有插入任何錯誤 – Stojdza 2013-04-06 19:12:21
這只是解決這個問題的最糟糕的方法:它似乎幾乎沒有任何關係概念。即使程序奏效,我也確信它所做的並不是你想要的東西(除非數據設計比我想象的要糟得多)。 – RBarryYoung 2013-04-06 19:46:57