1
我尝试了很多,你看到得到这个代码更聪明......它总是一样的...一个变量可以有6倍不同的值。 ..这决定在哪一列的其他值将被写入......如果记录仍然存在,我做一个“更新...”别的我做的“插入...”IF ELSE IF ELSE IF ....代码想要变得更聪明
我试着做一些动态SQL ...但它不工作...
我试着做一些“CASE ...”代码...但它不工作...
此代码的工作:
-- How many roads must a man walk down...
IF @DatenFeld = 'weaNr'
IF NOT EXISTS(SELECT * FROM @StaDa_Table WHERE [email protected])
INSERT INTO @StaDa_Table (DatenSatz, weaNr) VALUES (@DatenSatz, Convert(nvarchar(20),@DatenWert))
ELSE
UPDATE @StaDa_Table SET weaNr = Convert(nvarchar(20),@DatenWert) WHERE [email protected]
ELSE
IF @DatenFeld = 'weaTyp'
IF NOT EXISTS(SELECT * FROM @StaDa_Table WHERE [email protected])
INSERT INTO @StaDa_Table (DatenSatz, weaTyp) VALUES (@DatenSatz, Convert(nvarchar(20),@DatenWert))
ELSE
UPDATE @StaDa_Table SET weaTyp = Convert(nvarchar(20),@DatenWert) WHERE [email protected]
ELSE
IF @DatenFeld = 'nennP_W'
IF NOT EXISTS(SELECT * FROM @StaDa_Table WHERE [email protected])
INSERT INTO @StaDa_Table (DatenSatz, nennP_W) VALUES (@DatenSatz, Convert(int,@DatenWert))
ELSE
UPDATE @StaDa_Table SET nennP_W = Convert(int,@DatenWert) WHERE [email protected]
ELSE
IF @DatenFeld = 'refErt_Wh'
IF NOT EXISTS(SELECT * FROM @StaDa_Table WHERE [email protected])
INSERT INTO @StaDa_Table (DatenSatz, refErt_Wh) VALUES (@DatenSatz, Convert(bigint,@DatenWert))
ELSE
UPDATE @StaDa_Table SET refErt_Wh = Convert(bigint,@DatenWert) WHERE [email protected]
ELSE
IF @DatenFeld = 'inbetrieb'
IF NOT EXISTS(SELECT * FROM @StaDa_Table WHERE [email protected])
INSERT INTO @StaDa_Table (DatenSatz, inbetrieb) VALUES (@DatenSatz, Convert(datetime,@DatenWert))
ELSE
UPDATE @StaDa_Table SET inbetrieb = Convert(datetime,@DatenWert) WHERE [email protected]
ELSE
IF @DatenFeld = 'uw'
IF NOT EXISTS(SELECT * FROM @StaDa_Table WHERE [email protected])
INSERT INTO @StaDa_Table (DatenSatz, uw) VALUES (@DatenSatz, Convert(nvarchar(50),@DatenWert))
ELSE
UPDATE @StaDa_Table SET uw = Convert(nvarchar(50),@DatenWert) WHERE [email protected]
...所以也许有人北京时间哪个更熟悉TSQL可以帮助我得到这个代码更聪明?
*它不工作*是不是一个非常有用的评论 - 请** **解释为何以及如何不起作用;你会得到一个错误 - 如果是这样的话:***你得到了什么***错误?它没有返回任何值吗?错误的值?它回来了什么,你期望什么? – 2013-04-04 14:06:18
你知道有一个'case'声明,你已经尝试过了 - 你有谷歌它看它是如何使用? – 2013-04-04 14:06:38
人们不应该忘记问永恒的问题:你有什么尝试?至今? “请为我做,大声笑”并不真正在SO上工作。 ;-) – akluth 2013-04-04 14:07:27