有TABEL(IDEN,A ,B......)
现在用的方法是
insert into tabel
(A,B,......)
select A,B,......
from table
where iden=???
前段时间加了一个字段,很多地方都要改了,很烦
有没有办法写一个语句,select出所有除去iden的字段然后insert,
( all field except iden)
这样的语句会通用很多。
---------------------------------------------------------------
小示例 SQL2K:
Create Proc AutoInsert(@tblName varchar(20),@conditions varchar(300))
AS
Declare @dySQL varchar(8000)
Declare @ColList varchar(4000)
set @ColList=''
SELECT @ColList=@ColList+COLUMN_NAME +',' From INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=@tblName AND COLUMNPROPERTY(object_ID(table_name),COLUMN_NAME,'IsIdentity')=0
ORDER BY ORDINAL_POSITION
SET @colList=LEFT(@COLList,LEN(@ColList)-1)
SET @dySQL=' INSERT INTO '+@tblName + ' ( '+@ColList+' ) SELECT '+ @ColList + ' From '+@tblName + ' WHERE '+@conditions
EXEC ( @dySQL)
--@tblName 是表名,@conditions是條件。
EX:
EXEC AUTOINSERT 'MyTableName ',' id=1 '
GO