表结构:
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[aboutZR](
[companyIntroduction] [text] NULL,
[missions] [text] NULL,
[domain] [text] NULL,
[organizationalStructure] [text] NULL,
[interviewee] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'公司简介' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'companyIntroduction'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'使命与价值观' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'missions'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务领域' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'domain'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'组织结构' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'organizationalStructure'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'诚聘英才' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'interviewee'
GO-- =============================================================
-- Author: dai
-- Create date: 2010-4-8
-- Description: 修改关于中润信息,当不存在时进行插入操作
-- =============================================================ALTER proc [dbo].[UP_aboutZRU]
@columnName nvarchar(40),--列名称
@columnContent nvarchar(max) --列内容
as
declare @sql nvarchar(500)
declare @ParmDefinition nvarchar(500)
declare @count1 int --获得行数判断是进行修改还是插入操作set @sql=N'select @count=count(*)
from aboutZR
where ['+@columnName+'] is not null
'
SET @ParmDefinition = N'@count int output'
exec sp_executesql @sql,@ParmDefinition,@count=@count1 outputif @count1>0
begin
set @sql=N'update [aboutZR]
set ['+@columnName+N']='+@columnContent
end
else
begin
set @sql=N'INSERT INTO [aboutZR]
(['+@columnName+N'])
VALUES
('+@columnContent+N')'
end
print @sql
exec sp_executesql @sql不知道怎么解决。请各位大虾帮忙一下
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[aboutZR](
[companyIntroduction] [text] NULL,
[missions] [text] NULL,
[domain] [text] NULL,
[organizationalStructure] [text] NULL,
[interviewee] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'公司简介' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'companyIntroduction'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'使命与价值观' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'missions'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务领域' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'domain'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'组织结构' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'organizationalStructure'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'诚聘英才' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'aboutZR', @level2type=N'COLUMN',@level2name=N'interviewee'
GO-- =============================================================
-- Author: dai
-- Create date: 2010-4-8
-- Description: 修改关于中润信息,当不存在时进行插入操作
-- =============================================================ALTER proc [dbo].[UP_aboutZRU]
@columnName nvarchar(40),--列名称
@columnContent nvarchar(max) --列内容
as
declare @sql nvarchar(500)
declare @ParmDefinition nvarchar(500)
declare @count1 int --获得行数判断是进行修改还是插入操作set @sql=N'select @count=count(*)
from aboutZR
where ['+@columnName+'] is not null
'
SET @ParmDefinition = N'@count int output'
exec sp_executesql @sql,@ParmDefinition,@count=@count1 outputif @count1>0
begin
set @sql=N'update [aboutZR]
set ['+@columnName+N']='+@columnContent
end
else
begin
set @sql=N'INSERT INTO [aboutZR]
(['+@columnName+N'])
VALUES
('+@columnContent+N')'
end
print @sql
exec sp_executesql @sql不知道怎么解决。请各位大虾帮忙一下
alter proc [dbo].[UP_aboutZRU]
@columnName nvarchar(40),--列名称
@columnContent nvarchar(max) --列内容
as
begin
declare @sql nvarchar(500)
declare @ParmDefinition nvarchar(500)
declare @count1 int --获得行数判断是进行修改还是插入操作 set @sql=N'select @count=count(*)
from aboutZR
where ['+@columnName+'] is not null'
SET @ParmDefinition = N'@count int output'
exec sp_executesql @sql,@ParmDefinition,@count=@count1 output
print @count1
if @count1>0
begin
set @sql=N'update [aboutZR] set ['+@columnName+N']='''+@columnContent + ''''
end
else
begin
set @sql=N'INSERT INTO [aboutZR] (['+@columnName+N']) VALUES ('''+@columnContent+N''''
end print @sql
exec sp_executesql @sql
end
在此上下文中不允许使用 'dddddddd'。此处只允许使用常量、表达式或变量。不允许使用列名。那个SQL语句是INSERT INTO [aboutZR]
([domain])
VALUES
(dddddddd)
你可以运行一下 你上面改的那个。我之前也是想的这个方法。不行,所以我就不太清楚怎么用sql语句实现了不行的话,用C#程序实现是很简单的,就是想找到sql解决的方案
VALUES
('dddddddd')
@columnName nvarchar(40),--列名称
@columnContent nvarchar(max) --列内容
as
declare @sql nvarchar(500)
declare @ParmDefinition nvarchar(500)
declare @count1 int --获得行数判断是进行修改还是插入操作
set @columnContent=quotename(@columnContent,char(39))--此处加上这句,赋值还是按你原来那样试试set @sql=N'select @count=count(*)
from aboutZR
where ['+@columnName+'] is not null
'
SET @ParmDefinition = N'@count int output'
exec sp_executesql @sql,@ParmDefinition,@count=@count1 outputif @count1>0
begin
set @sql=N'update [aboutZR]
set ['+@columnName+N']='+@columnContent
end
else
begin
set @sql=N'INSERT INTO [aboutZR]
(['+@columnName+N'])
VALUES
('+@columnContent+N')'
end
print @sql
exec sp_executesql @sql
呵呵 你马虎了 。 嗨 我就更马虎了 你那个差一个)而我自己的那个差一个‘呵呵 谢谢大家了最后的结果是:alter proc [dbo].[UP_aboutZRU]
@columnName nvarchar(40),--列名称
@columnContent nvarchar(4000) --列内容
as
begin
declare @sql nvarchar(500)
declare @ParmDefinition nvarchar(500)
declare @count1 int --获得行数判断是进行修改还是插入操作 set @sql=N'select @count=count(*)
from aboutZR
where ['+@columnName+'] is not null'
SET @ParmDefinition = N'@count int output'
exec sp_executesql @sql,@ParmDefinition,@count=@count1 output
print @count1
if @count1>0
begin
set @sql=N'update [aboutZR] set ['+@columnName+N']='''+@columnContent + ''''
end
else
begin
set @sql=N'INSERT INTO [aboutZR] (['+@columnName+N']) VALUES ('''+@columnContent+N''')'
end print @sql
exec sp_executesql @sql
end